java - while循环不等待if语句完成

标签 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 (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/

相关文章:

javascript - 在 native react 中,当我在渲染部分放置 if 语句检查变量的值时,出现错误

java - JScrollPane 包含更新图像的尺寸错误

java - 我可以使用重构来将一个变量的类型交换为另一个变量吗?

c++ - 一个循环语句完成后如何循环?

javascript - 拖放、排序、克隆和更改类不起作用

java - 使用字符串的控制流结构的问题

java - 为什么对 UUID.randomUUID() 的初始调用很慢?

java - 如何在改造中获取访问 token

javascript - 如何用这些数据将两个数组合二为一? JS

c - 最佳无限循环