2013-03-04 59 views
0

我在我的程序结束时遇到了障碍。我知道,我的程序会输入一个数字文件,并会发现最低的值。我的困难是如何写出来的我的最高值变量,这样它会通过我的while循环运行,并为我打印行语句分配一个值.....下面是我的程序使我的变量可以接受我的打印声明

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


public class LargenSmalltest 
{ 
public static void main(String[] args) throws IOException 
{ 

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


    String filename;         
    double lowest = inputFile.nextDouble(); //lowest first number in list 
    double highest = lowest; 

    //Read all the values in Numbers file 
    while (inputFile.hasNext()) 
    { 
     //Read second value from file 
     double number = inputFile.nextDouble(); 

     //Read the numbers in the file and compare each value to find lowest value 
     if (number < lowest) 
      //The lowest number in the list has now been stored as lowest 
      lowest = number; 
    } 

    //Reread all the values in Numbers file 
    while (inputFile.hasNext()) 
    { 
     //number equals the second value in your list 
     double number = inputFile.nextDouble(); 

     if (number > highest) 
      highest = number; 
    } 

    //Close file 
    inputFile.close(); 

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

    System.out.println("The highest number in your file is, " +highest+ "."); 
} 

}

+0

你期望什么行为?你看到什么行为?另外,你应该真的考虑缩进你的代码。 – Jeffrey 2013-03-04 22:56:24

回答

1

没有理由有第二个while循环。用你的两个循环,你用完了第一个循环中的所有值,而第二个循环没有剩下的值。

您可以在一个环路上一样number执行的最低和最高测试:

while (inputFile.hasNext()) 
{ 
    // Read second value from file 
    double number = inputFile.nextDouble(); 

    // Read the numbers in the file and compare each value to find lowest value 
    if (number < lowest) 
     //The lowest number in the list has now been stored as lowest 
     lowest = number; 

    // Find the highest value. 
    if (number > highest) 
     highest = number; 
} 
2

同意@rgettman。此外,发生的事情是,您的扫描仪正在读取整个文件,但无法重新开始或反转。如果您要再次通过文件,您需要创建一个新的扫描仪。

相关问题