在我的计算机科学课程中,我们需要利用 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 值,但它仍然打印初始化值。我知道这与我的逻辑有关,但我就是看不到错误。
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);
}
}
请参阅工作代码示例此处