Java While循环不等待if语句';完成
我正在为CS简介做一个学校项目,我不能发布我的代码,因为我们的老师让我们从StackOverflow检查代码,结果我们失败了。我的问题是,在我的代码中,格式如下:Java While循环不等待if语句';完成,java,loops,if-statement,while-loop,Java,Loops,If Statement,While Loop,我正在为CS简介做一个学校项目,我不能发布我的代码,因为我们的老师让我们从StackOverflow检查代码,结果我们失败了。我的问题是,在我的代码中,格式如下: while (condition){ Do something; if (new condition){ Do something else; Wait for input; Depending on input make while's condition false; } 当对if语句求值并执行其他操作时,此代码应等待输入。然
while (condition){
Do something;
if (new condition){
Do something else;
Wait for input;
Depending on input make while's condition false;
}
当对if语句求值并执行其他操作时,此代码应等待输入。然而,我的代码并不等待“等待输入”步骤,而是直接进入“做点什么”步骤。这里有一些代码。谢谢你的帮助
while (inum != 102) {
System.out.println("Enter a number between 1 and 100: ");
inum = input.nextInt();
else if (inum == 101) {
System.out.println("Are you sure you want to quit?");
confirm = input.nextLine();
if (confirm == "yes") {
inum = 102;
}
}
在这里,当我键入101时,代码给出了以下信息:
你确定要退出吗?
输入一个介于1和100之间的数字:
*代码不等待
confirm = input.nextLine();
if (confirm == "yes") {
inum = 102;
}
步骤 定义另一个输入扫描器,不要对字符串和int使用相同的扫描器 请尝试此代码(我将System.exist(0)放入,以便在输入yes时程序退出)
定义其他输入扫描程序,不要对字符串和int使用相同的扫描程序 请尝试此代码(我将System.exist(0)放入,以便在输入yes时程序退出)
定义其他输入扫描程序,不要对字符串和int使用相同的扫描程序 请尝试此代码(我将System.exist(0)放入,以便在输入yes时程序退出)
定义其他输入扫描程序,不要对字符串和int使用相同的扫描程序 请尝试此代码(我将System.exist(0)放入,以便在输入yes时程序退出)
解决问题的最简单方法是打电话
input.nextLine();
就在下面
inum = input.nextInt();
原因是:当您在控制台中键入“101”时,实际上是键入101和换行符。nextInt()从控制台缓冲区获取101,但换行符保留。因此,跳过了代码中的第二个nextLine()(代码假定您输入了一个新的空行)解决问题的最简单方法是调用
input.nextLine();
就在下面
inum = input.nextInt();
原因是:当您在控制台中键入“101”时,实际上是键入101和换行符。nextInt()从控制台缓冲区获取101,但换行符保留。因此,跳过了代码中的第二个nextLine()(代码假定您输入了一个新的空行)解决问题的最简单方法是调用
input.nextLine();
就在下面
inum = input.nextInt();
原因是:当您在控制台中键入“101”时,实际上是键入101和换行符。nextInt()从控制台缓冲区获取101,但换行符保留。因此,跳过了代码中的第二个nextLine()(代码假定您输入了一个新的空行)解决问题的最简单方法是调用
input.nextLine();
就在下面
inum = input.nextInt();
原因是:当您在控制台中键入“101”时,实际上是键入101和换行符。nextInt()从控制台缓冲区获取101,但换行符保留。因此,代码中的第二条nextLine()被跳过(代码假定您输入了一个新的空行)@SotiriosDelimanolis,如果没有代码中显示的任何以前的
if
,那么似乎。。。将if(confirm==“yes”)
替换为if(“yes”。equals(confirm))
在更改为(“yes”。equals(confirm))后,我仍然得到相同的响应。你的大括号和else-if的位置很有趣。你能检查一下你的示例编译并根据需要进行更新吗?@SotiriosDelimanolis,如果没有代码中显示的任何以前的if
,那么似乎。。。将if(confirm==“yes”)
替换为if(“yes”。equals(confirm))
在更改为(“yes”。equals(confirm))后,我仍然得到相同的响应。你的大括号和else-if的位置很有趣。你能检查一下你的示例编译并根据需要进行更新吗?@SotiriosDelimanolis,如果没有代码中显示的任何以前的if
,那么似乎。。。将if(confirm==“yes”)
替换为if(“yes”。equals(confirm))
在更改为(“yes”。equals(confirm))后,我仍然得到相同的响应。你的大括号和else-if的位置很有趣。你能检查一下你的示例编译并根据需要进行更新吗?@SotiriosDelimanolis,如果没有代码中显示的任何以前的if
,那么似乎。。。将if(confirm==“yes”)
替换为if(“yes”。equals(confirm))
在更改为(“yes”。equals(confirm))后,我仍然得到相同的响应。你的大括号和else-if的位置很有趣。你能检查你的示例编译并根据需要进行更新吗?confirm==“yes”
不起作用。为什么-1我只是忘了放confirm.equalsIgnoreCase(“yes”)来提醒你你的答案没有帮助。似乎它起作用了。是否需要系统。退出(0)?代码现在不会退出while循环吗?如果你不关心特殊的inum==102案例,你可以简单地做while(true)
。它是有效的,但是当我像我说的那样输入代码时,我忘记了更改==使用equalsconfirm==“yes”
不会起作用。为什么-1我只是忘记输入confirm.equalsIgnoreCase(“yes”)来提醒你你的答案没有帮助。似乎它起作用了。是否需要系统。退出(0)?代码现在不会退出while循环吗?如果您不关心特殊的inum==102情况,您可以简单地执行while(true)
。它可以工作,但是当我像我说的那样放置代码时,我忘记了更改==使用equals确认==