2017-11-08 1 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 스코어로 끝날 것이므로 'smallNum = number'가 while 루프에서 매번 실행됩니다. – Jaycee

답변

2

제거, 오타가있는 ';' if (number < smallNum) 바로 뒤에 if 뒤에있는 ;은 'smallNum = number;'를 발생시킵니다. 조건에 관계없이 달리는 지시.

+0

잘 작동합니다. – dave

관련 문제