我应该把什么作为我整个方法的return语句,因为我已经在if / else中使用了return语句?
public static boolean rowsAreValid(int[][] array){
for (int i = 0; i < array.length; i++){
for (int k = i +1; k < array.length; k++){
for (int j = 0; j < array[i].length; j++) {
// Returns false if the numbers are not the same
if (array[i][j] == array[k][j]){
System.out.println("false");
return false;
}
//Returns true if numbers are the same
else {
System.out.println("true");
return true;
}
}
}
}
// RETURN STATEMENT
}
答案 0 :(得分:2)
这段代码令人困惑,但是在编译器抱怨的原因(没有解决代码的整体结构)的情况下:你可能会遇到循环不执行的情况,如果发生这种情况,你的if -else block永远不会执行,你也不会有回报。例如,如果array.length == 0
,就会发生这种情况。在这些情况下,您需要确定此方法的正确答案,并相应地提供返回。
答案 1 :(得分:0)
由于您希望在数字相同时返回true
,然后输入您的return语句:return true
。因为通过推理,你的数字永远不会相同。
同样@blm在评论中注明,我认为代码中的代码段为:
// Returns false if the numbers are not the same
if (array[i][j] == array[k][j]){
...
}
应该是,
// Returns false if the numbers are not the same
if (array[i][j] != array[k][j]){
...
}
因为否则,你的逻辑会不正确。