java - Do-While 循环和 hasNextInt()

标签 java

我知道这听起来像是一个非常愚蠢的问题,但我不明白我的错误在哪里。

为什么在循环的第二次迭代中,它不打印'Enter a number:'?

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner console = new Scanner(System.in);
        int[] v = new int[10];
        int index = 0;
        do {
            System.out.print("Enter a number:\t");
            v[index] = console.nextInt();
            index++;
        } while(console.hasNextInt());

        for (int i = 0; i < index; i++){
            System.out.print(v[i] + "\t");
        }
        System.out.println("\n" + index);
    }
}

这是输出:

Enter a number: 1
2
Enter a number: 3
Enter a number: 4
Enter a number: 5
Enter a number: ^D
1       2       3       4       5
5

最佳答案

因为 hasNextInt 在控制台上出现 int 之前一直阻塞,因此不会进入循环的下一次迭代。

关于java - Do-While 循环和 hasNextInt(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55969661/

相关文章:

java - 如果图片尺寸过大,将无法加载

java - 用整数迭代 ArrayList

java - 使用 libffmpeg 时如何计算 AVPicture.data[x] 指针 (YUV420p) 的大小

java - OpenAM + Spring Security SAML 获取 SAML 请求是无效响应

java - 我可以从内部类中的方法引用一个类吗?如果可以,如何引用?

java - cxf-codegen-plugin 和 "Two declarations cause a collision in the ObjectFactory class."

Java - 检查索引是否已经存在 neo4j(if 子句)

java - 尽管首先检查操作系统,但 Mac OS X 特定的操作会使应用程序在其他操作系统上崩溃

java - 如何访问类的动态创建对象的方法和属性

java - 如何将服务器证书添加到本地受信任的 Java keystore ?