-1

次のコードがあり、到達不能ステートメント エラーが発生しています。問題の行の後に、それが原因であるというコメントがあります。

public static void selectPlayer ()
{
    // Loops through Player class' static array. If an index is storing a player object then print the player name out with a number for selection.
    for(int i=0; 1<101; i++)
    {
        if (Player.playerArray[i] != null)
        {
            System.out.println(i + ". " + Player.playerArray[i - 1].playerName);
        }

        System.out.print("\nPlease enter the number that corresponds to the player you wish to use; "); // This line is where it failed to compile a la unreachable statement.
        Scanner scanner = new Scanner(System.in);
        // Take players selection and minus 1 so that it matches the Array index the player should come from.
        int menuPlayerSelection = scanner.nextInt() - 1;
        // Offer to play a new game with selected player, view player's stats, or exit.
        System.out.print("You have selected " + Player.playerArray[menuPlayerSelection].playerName + ".\n1) Play\n2) View Score\n3) Exit?\nWhat do you want to do?: ");
        int areYouSure = scanner.nextInt();
        // Check player's selection and run the corresponding method/menu
        switch (areYouSure)
        {
            case 1: MainClass.playGame(menuPlayerSelection); break;
            case 2: MainClass.viewPlayerScore(menuPlayerSelection); break;
            case 3: MainClass.firstMenu(); break;
            default: System.out.println("Invalid selection, please try again.\n");
                         MainClass.firstMenu();
        }
    }

私の質問は、どうすれば修正できますか? 到達不能ステートメントエラーが通常発生する理由はわかりますが、私の場合はなぜ発生しているのかわかりません。

4

5 に答える 5

7

まずこれを編集します。

for(int i=0; 1<101; i++) {

無限ループです。

したがって、1 の代わりに i を設定します。

for(int i=0; i<101; i++){
于 2013-03-18T15:35:34.983 に答える
2

for ループの状態を見てください。それは決して終わらない。

于 2013-03-18T15:35:41.023 に答える
1
for(int i=0; 1<101; i++)

する必要があります

for(int i=0; i<101; i++)

あなたの条件は 1<101 です。無限ループであることが常に真になります。

于 2013-03-18T15:36:41.210 に答える
1

あなたのコードには、} 確実に壊れる原因となるa がありません

そして他の人が言ったように、あなたのforループ

for(int i=0; 1<101; i++)

IndexOutOfBound常にその条件を満たし、例外が発生し始めるようです。

于 2013-03-18T15:44:24.643 に答える
0

これは無限ループですfor(int i=0; 1<101; i++)(1 は常に 101 よりも小さいため)。

于 2013-03-18T15:37:08.673 に答える