猜测游戏java的代码中的错误

时间:2012-04-23 15:42:15

标签: java

好吧,所以这应该是完整代码的一部分,但要点是,用户猜测猜数字游戏的答案以及用户正确的时刻:

if (guess==num){
    System.out.println("You Win!");
    System.out.println("Play Again?? Y/N");

    String play=scan.nextLine();

    if(play.equalsIgnoreCase("y")){
        Game();
    }

    if(play.equalsIgnoreCase("n")){
        System.exit(1);
    } else {
        invalid(); //when playing again, it says you entered an invalid choice which i do not want.

        play=scan.nextLine();

        if(play.equalsIgnoreCase("y")){
            Game();
        }
    }
}
输出是:

.............................................

14

你赢了!

再玩一次? Y / N

您输入的选项无效,请重新输入Y / N<< =====问题在这里 .................................................. ...............

我想要的是来自用户的响应再次播放的输入?问题,但我不明白导致我打印出来的代码的哪一部分你输入了无效的选择,有人可以帮忙吗?我遗憾地看不出这个问题。我仍然需要无效的方法,因为我想告诉用户他们输入y / n问题的无效答案。

2 个答案:

答案 0 :(得分:5)

选择“是”后,您的代码仍然可以输入无效部分。您需要使用 else if 语句

if(play.equalsIgnoreCase("y")){
        Game();
}

else if(play.equalsIgnoreCase("n")){
    System.exit(1);
}

else{
   //...
}

您是否正在使用带调试的编程环境?使用原始代码,我建议在System.out.println("You Win!");行设置断点,然后逐行查看代码所需的路径。这将帮助您了解自己正在发生的事情。

即使没有调试,您也可以添加更多System.out语句,以便更好地了解您的程序流程。

String play=scan.nextLine();
System.out.println("My inputted value was " + play);

    if(play.equalsIgnoreCase("y")){
        System.out.println("Beginning new game...");
        Game();
    }

    if(play.equalsIgnoreCase("n")){
            System.out.println("Exiting game...");
            System.exit(1);
        }

    else{

答案 1 :(得分:3)

    if(play.equalsIgnoreCase("y")){
        Game();
    }

即使用户按Y,也会转到下一个if / else

    if(play.equalsIgnoreCase("n")){
            System.exit(1);
    } else {

        invalid(); //when playing again, it says you entered an invalid choice which i do not want.

            play=scan.nextLine();

            if(play.equalsIgnoreCase("y")){
                Game();
            }
        }

    }

因为游戏是Y,所以它正在调用

invalid();