2017-11-08 10 views
0

ユーザーにテキストファイルと出力ファイルを入力させるためのコードを記述しておき、プログラムは入力ファイルの各行を読み込んで最小の番号を見つけなければなりません。出力は "< ==最小番号"の後に最小番号が続くはずです。私はそれを実行すると、最小の数は、私がこれまで持っている。これは、コードでテキストファイル内の最後の番号を毎回テキストファイルで最小の数字を見つけるにはどうすればよいですか? (Java)

されて終わる:

import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.PrintWriter; 
import java.util.Scanner; 

public class FindSmallest { 

public static void main(String[] args) throws FileNotFoundException { 
    Scanner console = new Scanner(System.in); 
    System.out.print("Your input file: "); 
    String inputFileName = console.next(); 
    System.out.print("Your output file: "); 
    String outputFileName = console.next(); 


    File inputFile = new File(inputFileName); 
    Scanner in = new Scanner(inputFile); 
    PrintWriter out = new PrintWriter(outputFileName); 

    double smallNum = in.nextDouble(); 

    while(in.hasNextDouble()){ 

     double number = in.nextDouble(); 
     if (number < smallNum); { 
      smallNum = number; 
     } 
    } 

    System.out.println(smallNum); 
    //out.printf("%8.2f <== smallest number", smallNum); 
    in.close(); 
    out.close(); 
    } 

} 
+0

割り当てを行うたびに印刷しないのはなぜですか?多分、最後の数字は本当に小さいです。 – ergonaut

+0

私は数字のリストを持っていて、最小の数字は1です。私のコードでファイルを読み込み、最後の数字をピックしてsmallNumに割り当てる必要があります。 –

+0

if文の後のセミコロンがifスコープを終了するので、whileループで毎回 'smallNum = number'が実行されます – Jaycee

答えて

2

削除、タイプミスを持っています「;」 if (number < smallNum)の直後ですifの後の;は `smallNum = number; 'を返します。条件に関係なく実行する命令。

+0

うまく動作しました。 – dave

関連する問題