私は2つのnonvoid方法については "return文を欠けている" エラーを持っている:Javaエラー:不足しているreturn文
方法1:
private boolean checkBox(int val, int i, int j) {
if(0<=i && i<=2 && 0<=j && j<=2){for(i=0;i<=2;i++){for(j=0;j<=2;j++){if(model[i][j]==val) return false;}}}else{return true;}
if(0<=i && i<=2 && 3<=j && j<=5){for(i=0;i<=2;i++){for(j=3;j<=5;j++){if(model[i][j]==val) return false;}}}else{return true;}
if(0<=i && i<=2 && 6<=j && j<=8){for(i=0;i<=2;i++){for(j=6;j<=8;j++){if(model[i][j]==val) return false;}}}else{return true;}
if(3<=i && i<=5 && 0<=j && j<=2){for(i=3;i<=5;i++){for(j=0;j<=2;j++){if(model[i][j]==val) return false;}}}else{return true;}
if(3<=i && i<=5 && 3<=j && j<=5){for(i=3;i<=5;i++){for(j=3;j<=5;j++){if(model[i][j]==val) return false;}}}else{return true;}
if(3<=i && i<=5 && 6<=j && j<=8){for(i=3;i<=5;i++){for(j=6;j<=8;j++){if(model[i][j]==val) return false;}}}else{return true;}
if(6<=i && i<=8 && 0<=j && j<=2){for(i=6;i<=8;i++){for(j=0;j<=2;j++){if(model[i][j]==val) return false;}}}else{return true;}
if(6<=i && i<=8 && 3<=j && j<=5){for(i=6;i<=8;i++){for(j=3;j<=5;j++){if(model[i][j]==val) return false;}}}else{return true;}
if(6<=i && i<=8 && 6<=j && j<=8){for(i=6;i<=8;i++){for(j=6;j<=8;j++){if(model[i][j]==val) return false;}}}else{return true;}
}
方法2:
private int solveMethod(int val, int i, int j){
if(i<SIZE-1){
if(j<=SIZE-1){
if(isEmpty(i, j)==true){
if(model[i][j]==0){val=1;}
if(tryValue(val, i, j)==false){
if(model[i][j]<SIZE) solveMethod(model[i][j]+1, i, j);
else{
bigloop:while(i>0){
while(j>0){
j--;
if(isEmpty(i, j)==true && model[i][j]<SIZE) break bigloop;
}
i--;
j=8;
}
solveMethod(model[i][j]+1, i, j);
}
}else{solveMethod(val, i, j+1);}
}else{solveMethod(val, i, j+1);}
}else{solveMethod(val, i+1, 0);}
}else{return i;}
どのように考えるか(両方の場合)とそれを修正する方法。私はJava初心者です。事前
方法1あなたのforループは返さずに完了するかもしれないので、メソッドはreturn文をヒットします。 – khelwood
@khelwoodそれはループではなく、それは条件です:最も外側の条件が満たされているという保証はありません。 –
方法2:あなたのメソッドは、最後のelse節を満たしていればreturn文にヒットするだけです。 – khelwood