我正在创建一个程序,用户输入随机数,它会返回最大和最小的数字。我将最高编号和最低编号初始化为数组中的第一个元素。然后我检查该数字是否大于或小于为各个变量分配的值。除了将索引值与最低数字进行比较的 if 语句之外,一切都有效。我不知道为什么它不起作用。它与最高数字的 if 语句完全相反(顺便说一下,它是有效的)。对于最小的数字,程序始终返回 0.0。这是我的主要方法:
private static String arrayLimit;
private static double highestNumber;
private static double lowestNumber;
public static void main(String[] argument) throws IOException
{
BufferedReader console =
new BufferedReader(new InputStreamReader(System.in));
System.out.print("How many numbers do you want to enter? ");
arrayLimit = console.readLine();
int limit = Integer.parseInt (arrayLimit);
int[] number = new int[limit];
highestNumber = number[0];
lowestNumber = number[0];
for (int index = 0; index < limit; index++)
{
System.out.print("Number " + (index + 1) + ": ");
String input = console.readLine();
number[index] = Integer.parseInt(input);
if (number[index] > highestNumber)
{
highestNumber = number[index];
}
if (number[index] < lowestNumber)
{
lowestNumber = number[index];
}
}
System.out.println("Highest number: " + highestNumber);
System.out.println("Lowest number: " + lowestNumber);
}
最佳答案
注意如何将最高值和最低值初始化为number[0]
。此时,它们都是 0。当您浏览数字列表时,没有任何内容会低于 0(假设您只输入正数),因此 0 将是您的输出。我建议将其初始化为 Integer.MAX_VALUE - 根据定义,每个 int 都低于此值。同样,您可能希望将 highestNumber = number[0]
更改为 highestNumber = Integer.MIN_VALUE
- 没有任何值低于该值,这将允许您的程序处理负数数字也是如此。
关于java - 程序不会输出最小的数字 [Java],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22824039/