-2

通常、検証のために次の行に沿ってコードを実行します。

public static void Menu()
{
    Scanner keyboard = new Scanner(System.in);
    if (!keyboard.hasNextInt())
    {
        System.out.println("Incorrect input, try again");
        Menu();
    }  
    else
    {
        // switch statement etc
    }
}

これは悪い習慣なのだろうか?もしそうなら、なぜ、そして再帰を使用する以外にそれを行うためのより良い方法は何ですか. 私は数の力やその他のものを得るために再帰を使用したので、その考え方を理解しています。

4

5 に答える 5

1

この場合、私はYesと答えます。

  1. このメソッドで新しいオブジェクトを宣言します。メモリーを考えよう!
  2. この場合、while ループの方が適切です。

edit:// を遅くするには

于 2013-09-06T12:04:57.990 に答える
0

再帰呼び出しの数が固定されていない場合、このタイプの再帰は良くありません。OutOfMemoryErrorいくつかの間違った試行の後、おそらく例外が発生します。したがって、代替手段を見つけるか、このように再帰を使用する必要がcounterある場合は、特定の回数の試行を許可する a を入力してください。

于 2013-09-06T12:12:32.697 に答える
-2

ループは常に再帰よりも優れています。再帰では、内部スタックが構築されます。また、再帰には、ループよりも遅いメソッドサブルーチンジャンプが必要です

于 2013-09-06T12:04:51.070 に答える