private static boolean allNinePresent(int[][] array){
int total = 0;
for (int row = 0; **array.length**; row++){
for (int col = 0; **array[row].length**; col++){
int addEach = array[row][col];
total = addEach + total;
}
}
if (total == 45){
return true;
} else {
return false;
}
}
数组不应该是int吗?为什么将它从int转换为boolean?我该如何解决这个问题。
答案 0 :(得分:0)
for (int col = 0; array[row].length; col++){
第二部分接受boolean
表达式
; array[row].length;
您正在通过int
你需要
row < array.length
和
col < array[row].length
答案 1 :(得分:0)
for
循环的第二部分不是停止值,它是条件,循环将继续循环。使用row < array.length
和col < array[row].length
。
答案 2 :(得分:0)
正如official tutorial中所指出的那样,语句看似
for (initialization; termination; increment) {
statement(s)
}
和
当
termination
表达式求值为false
时,循环终止。
在你的情况下*array.length
用于代替终止,但在Java中,布尔值不能用整数表示,所以像if(1)
这样的东西是无效的。这意味着您需要更具体并使用可以计算为布尔值(true或false)的实际表达式,例如
true
false
a<b
a>=b
这就是你的循环看起来更像
的原因 for (int row = 0; row<array.length; row++){
for (int col = 0; cor<array[row].length; col++){
BTW
if (total == 45){
return true;
} else {
return false;
}
可以改写为更简单的东西,如
return total == 45;