だからここに私のコードです:私はエラーがどこにあるか見つけることができないようJavaエラー「リターンなステートメントを逃す」
public class Bob {
public static int F(int n) {
if (n > 1) {
if (n % 2 == 0) {
n = n/2;
System.out.println(n);
return F(n);
} else if (n % 2 != 0) {
n = 3 * n + 1;
System.out.println(n);
return F(n);
} else {
System.out.println("Complete");
return 0;
}
}
public static void main(String[] args) {
int result = F(10);
System.out.println(result);
}
}
。可能なすべてのnの値がカバーされます。私がif-statmentの外で単純な戻り値を加えると、それはうまくいくが、なぜそうでなければならないのか分からない。
また、私がメインに印刷 "i" のステートメントを追加したいのですが、私はのような何かやるたび:
if (something){
int i;
i++;
do something
を私がするSystem.out.println(i)と、それを追加しよう私は静的変数についてのエラーを返します。あなたはそれがif
statement.Theコンパイラは、そのようにメソッドを呼び出しますどのような変数を知らない決して入らないことが原因の方法でreturn;
ステートメントを追加する必要が
閉じ括弧がありません。 –
'n'が0の場合、あなたは何を返そうとしていますか? – Andreas
@Andreasコードはそれほど遠くには達しません。 –