如何从用户输入中获取最小值/最大值?

问题描述 投票:0回答:1

在我的计算机科学课程中,我们需要利用 do-while 循环找到用户输入的 -100 到 100 之间的最高和最低数字。我在这方面遇到了麻烦,因为这些值似乎只是使用初始化值而不是用户输入的值。教授告诉我只要弄清楚即可,但我做不到。

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        double number;
        double max = 0;
        double min = 0;
        
        
        // Do while loop that asks the user for values from -100, 100, and determine max and min
        do {
            System.out.print("Enter value:");
            number = input.nextDouble();
            if(number == -19.5) {
                break;
            }
            
            if (number >= -100 && number <= 100) {
                
                if (number > max) {
                max = number;
                }
                if (number < min) {
                min = number;
                }
                    
            } else {
                System.out.print("There were no valid values");
            }
            
        } while (true);
                    
        System.out.println("The max value was " + max);
        System.out.println("The min value was " + min);
        
    }
}

我尝试将变量初始化为 Integer.MAX/MIN 值,但它仍然打印初始化值。我知道这与我的逻辑有关,但我就是看不到错误。

java do-while
1个回答
0
投票
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        double number;
        double max = Double.MIN_VALUE;  // Init MAXIMUM to the SMALLEST possible double value
        double min = Double.MAX_VALUE;  // Init MINIMUM to the LARGEST possible double value

       
        do {
            System.out.print("Enter value: ");
            number = input.nextDouble();

            if (number == -19.5) {
                break;
            }

            if (number >= -100 && number <= 100) {
                if (number > max) {
                    max = number;
                }
                if (number < min) {
                    min = number;
                }
            } else {
                System.out.println("Invalid value. Enter a value between -100 and 100.");
            }

        } while (true);

        System.out.println("The max value was " + max);
        System.out.println("The min value was " + min);
    }
}

请参阅工作代码示例此处

© www.soinside.com 2019 - 2024. All rights reserved.