java - 程序不会输出最小的数字 [Java]

标签 java

我正在创建一个程序,用户输入随机数,它会返回最大和最小的数字。我将最高编号和最低编号初始化为数组中的第一个元素。然后我检查该数字是否大于或小于为各个变量分配的值。除了将索引值与最低数字进行比较的 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/

相关文章:

java - 将字符串路径转换为输入流

java - JPA 中的 EntityManager 表不可见

java - 将字符串与字符串元素数组进行比较

java - rdf4j 过滤器模型由 rdf :id

java - IntelliJ 代码模板

java - 多次执行jar文件并分析输出

java - Eclipse RCP : move createPartControl into background

java - thymeleaf 中带有填充列表的空索引异常

JavaBean 和 DSL

Java Lejos 自主 NXJ 机器人线程造成麻烦