Given an array of ints, return true if every element is a 1 or a 4. only14([1, 4, 1, 4]) → true only14([1, 4, 2, 4]) → false only14([1, 1]) → true
我想出了以下算法返回所有預期的答案,除了一個空數組,應該返回true
:空數組返回true?鑑於int數組,如果每一個元素是1或返回true 4
public boolean only14(int[] nums) {
boolean flag = false;
for (int i = 0; i < nums.length; i++) {
if (nums[i] == 1 || nums[i] == 4) {
flag = true;
} else {
return false;
}
}
return flag;
}
從解決方案,下面的輸入應該產生true
,但我想不通爲什麼:
only14([]) → true
我知道默認值是0,所以我錯過了什麼,我應該期望布爾的返回值是true
?
擺脫flag'的'實現它,只是返回'末TRUE'。 –
因爲空集不包含不是1或4的數字。 –
我知道您不是在問如何編寫能夠爲空集返回true的代碼。相反,你在問爲什麼應該爲空集返回true。如果是這樣的話,請閱讀這篇關於材料條件操作符[這裏]的文章(https://en.wikipedia.org/wiki/Material_conditional)。第一段就夠了。 – Haozhun