0

好的,所以这应该是完整代码的一部分,但要点是,用户猜测猜数游戏的答案,并且用户猜对了:

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 问题输入无效答案时。

4

2 回答 2

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{
于 2012-04-23T15:46:02.430 回答
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();
            }
        }

    }

既然 play 是 Y,它正在调用

invalid();
于 2012-04-23T15:46:41.803 回答