2

我正在介绍 Java,但对这一挑战感到困惑。我在这里搜索了我的书和有用的链接,但没有找到与我正在做的事情有关的任何内容。

挑战是在记事本文件中创建一个数字列表。java程序必须导入数字,比较每个数字,然后打印出列表中哪个数字具有最低值。

在此处输入代码

这是我的代码

import java.io.*;
import java.util.Scanner;

/**
Aaron Moores
March 2, 2013
Input: Numbers file
Output: Highest number, lowest number
*/

public class LargenSmall
{
    public static void main(String[] args) throws IOException
    {
    String filename;        //Numbers file
    double lowest;

    //Open the file
    File file = new File("Number.txt");
    Scanner inputFile = new Scanner(file);

    lowest = 0.0;

    //Read all the values in Numbers file and find the lowest value
    while (inputFile.hasNext())
    {
    //Read a number in the file
    double number = inputFile.nextDouble();
    lowest =  < number;
    }

    //Close file
    inputFile.close();

    //Print out lowest value in the list
    System.out.println("The lowest number in your file called, " +
                            "Numbers.txt is " +lowest);
    }
}

我的问题是弄清楚如何格式化比较每个值以存储最小值的代码行。如果我将 (lowest = minimum < number) 更改为 (lowest = minimum + number) 并添加一个累加器,程序将添加我文件中的所有值并显示它们,所以我知道程序的导入部分有效。我只是不清楚如何制定比较语句以使其显示最低值。

请帮助我难住了。谢谢

4

2 回答 2

1

首先,初始化lowest为正无穷大,使其大于任何输入:

double lowest = Double.POSITIVE_INFINITY;

在循环中,只需取较小的lowest和 输入:

lowest = Math.min(lowest, number);
于 2013-03-03T15:24:33.657 回答
0

尝试这样的事情:

while (inputFile.hasNext())
{
//Read a number in the file
double number = inputFile.nextDouble();
if (number < lowest) lowest = number;
}

或者你可以试试:

Math.min(lowest, number);

每次都在循环中。

于 2013-03-03T15:23:36.177 回答