-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++) {

它是无限循环。

所以设置 i 而不是 1。

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

您的代码缺少一个} 肯定会导致它中断的代码

正如其他人所说,你的 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 回答