我不确定逻辑上哪里错了。它对于对角矩阵和非对角矩阵都返回true。我仍然是二维阵列的新手,并观看了视频和在线阅读。我确实理解2d数组如何工作,但我无法得到正确的答案。
..
else{
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix.length; j++) {
if((i != j) && (matrix[i][j] != 0)){
isDyg = false;
}
}
//System.out.print("");
}
isDyg = true;
}
return isDyg;
答案 0 :(得分:1)
因为在循环结束后,每次都将isDyg设置为true。
将isDyg = false;
更改为return false;
或者将您的代码更改为 -
isDyg = true;
outerloop:
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix.length; j++) {
if((i != j) && (matrix[i][j] != 0)){
isDyg = false;
break outerloop;
}
}
//System.out.print("");
}
return isDyg;