java - 为什么不考虑输入的第一个值?

标签 java if-statement while-loop

如果输入的第一个数字是输入的所有数字中的最大值或最小值,则程序不会将该值视为最小值或最大值。我做错了什么?

    Scanner in = new Scanner(System.in);
    System.out.println("Please enter a set of integers: ");
    System.out.println("When done entering, enter a non integer (e.g. a floating-point number or string).");


    int smallest = in.nextInt();
    int largest = in.nextInt();

    while (in.hasNextDouble()) {
        int input = in.nextInt();
        if (input > largest) {
            largest = input;
        }
        else {  
        }
        if (input < smallest) { //doesn't include first input?
            smallest = input;
        }   
        else {  
        }
    }

    System.out.println("Maximum: " + largest);
    System.out.print("Minimum: " + smallest);
    in.close();
}

}

最佳答案

我对你的代码做了一些优化。您正在检查 nextDouble,但如果它的计算结果为 true,则循环将继续,并且程序停止的原因是抛出异常。除此之外,在你的系统中你说它也可以是一个字符串。您还决定第一个输入是最小的,第二个输入是最大的。这可能会导致有趣的问题(如果我按顺序输入 10、1、5.5,它会告诉我最小的是 10,最大的是 1)。我编写的代码仍然无法输入任何整数,但您尚未指定这种情况的预期行为。

Scanner in = new Scanner(System.in);
        System.out.println("Please enter a set of integers: ");
        System.out.println("When done entering, enter a non integer (e.g. a floating-point number or string).");

        int smallest = Integer.MAX_VALUE;
        int largest = Integer.MIN_VALUE;

        while (in.hasNextInt()) {
            int input = in.nextInt();
            if (input > largest) {
                largest = input;
            }
            if (input < smallest) {
                smallest = input;
            } 
        }

        System.out.println("Maximum: " + largest);
        System.out.println("Minimum: " + smallest);
        in.close();

关于java - 为什么不考虑输入的第一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60888388/

相关文章:

java - 使用 Jackson 进行内部静态对象反序列化

javascript - 在哪些情况下我应该使用 'while loops' 而不是 JavaScript 中的“for 循环”?

java - 拆分 Bean 还是在一个项目中制作所有 Bean?

excel - 复数中频公式

Swift 在运行时评估错误的条件

Python - 检查类是否存在

java - 从 switch case Java 中调用变量

c - 为什么我在运行代码时收到调试断言失败错误

java - 单客户端到多客户端支持 : multithreading conversion in java

java - 有没有绕过编译的 Java 解释器?