Java 扫描输入并再次启动或关闭循环
我编了一个猜谜游戏,现在我遇到了一个问题。我想问用户,如果答案为“y”(是),他/她是否想再次玩,重新启动游戏,如果答案为“N”(否),则应结束循环 如果我输入“否”,为什么它不会结束? 有人能帮我处理这部分代码吗 我尝试过不同的方法,比如在类的外部或内部定义它等等Java 扫描输入并再次启动或关闭循环,java,Java,我编了一个猜谜游戏,现在我遇到了一个问题。我想问用户,如果答案为“y”(是),他/她是否想再次玩,重新启动游戏,如果答案为“N”(否),则应结束循环 如果我输入“否”,为什么它不会结束? 有人能帮我处理这部分代码吗 我尝试过不同的方法,比如在类的外部或内部定义它等等 public class GuessingGame { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Ra
public class GuessingGame {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Random rdm = new Random();// Welcome to the game
System.out.println("Welcome!");
// Generate random number
int input = 0;
do {
int rdmNumber = rdm.nextInt(999) + 1;
while (input != rdmNumber) {
try {
System.out.println("Please enter your guess:");
int userGuess = Integer.parseInt(sc.next());
input = userGuess;
} catch (NumberFormatException e) {
System.out.println("Not a number - try again!");
}
if (input > rdmNumber) {
System.out.println("Too big!");
} else if (input < rdmNumber) {
System.out.println("Too small!");
} else if (input == rdmNumber) {
System.out.println("You win!");
}
}
System.out.println("Play another Round? [y/N]");
String nextRound = sc.nextLine();
sc.next();
if (nextRound.contains("y")) {
input = 0;
}
}while (input == 0);
}
}
公共类猜谜游戏{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
Random rdm=new Random();//欢迎来到游戏
System.out.println(“欢迎!”);
//生成随机数
int输入=0;
做{
int rdmNumber=rdm.nextInt(999)+1;
while(输入!=rdmNumber){
试一试{
System.out.println(“请输入您的猜测:”);
int userGuess=Integer.parseInt(sc.next());
输入=用户猜测;
}捕获(数字格式){
System.out.println(“不是数字-再试一次!”);
}
如果(输入>rdmNumber){
System.out.println(“太大了!”);
}else if(输入
如果用户输入“y”,游戏应该重新启动,如果他/她输入“N”,游戏应该结束。你只在
下一个命令包含(“y”)时更新输入。因此,对于“y”以外的任何输入,输入将保持0
(您将其初始化为的值)。while循环继续,因为input==0
为true
正确的解决方案是将if
语句更改为:
if(nextrund.contains(“N”)){
输入=1;
}
或者:
if(nextrund.contains(“N”)){
返回;
}
如果字符串不包含y
,则可以将input
设置为零以外的值。否则,输入
始终为零。首先感谢您的回复。我改变了你告诉我的方式,但现在我遇到了问题,如果我输入“y”,它就会终止。