我正在开发一个 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 (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;
}
步骤。
最佳答案
解决问题的最简单方法是调用
input.nextLine();
就在下面
inum = input.nextInt();
原因是:当你在控制台输入“101”时,你实际上输入的是101和NEWLINE。 nextInt() 从控制台缓冲区获取 101,但保留 NEWLINE 字符。因此,代码中的第二个 nextLine() 被跳过(代码假设您输入了一个新的空行)
关于java - while循环不等待if语句完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22231132/