This is it. it's IT.

[백준 10951] 입력이 끝날때까지 입력값을 받아 결과를 출력하기 본문

Backend/JAVA

[백준 10951] 입력이 끝날때까지 입력값을 받아 결과를 출력하기

응애개발자 애기 2021. 12. 8. 17:27
728x90
반응형
import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        
        while(scan.hasNextInt()){ // 입력이 끝날 때까지 반복하게 함
            int A = scan.nextInt();
            int B = scan.nextInt();
            System.out.println(A+B);
        }
       
        
        
    }
}

해당 문제는 EOF에 관해서 고민을 하게 해준다. 

EOF는 end of file 의 약자이다.

정해진 반복횟수가 없을 때 프로그램의 끝을 선언해주는 것이다. 

Scanner를 이용한다면 상단의 메서드 hasNextInt() ... hasNextLine() 등을 사용하여

다음 입력이 있는지 확인 후 종료할 것인지 정하도록 한다.

 

BufferedReader를 사용하면, 

입력의 끝에서 true나 false가 아닌 null을 반환하기 때문에 반복문의 식은 이렇게 된다.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main{
	public static void main(String[] args) throws IOException{
      
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      StringBuilder sb= new StringBuilder();
      String str = "";
      
      while((str=br.readLine())!=null){
          int A = str.charAt(0) - 0;
          int B = str.charAt(2) - 0;
          sb.append(A+B).append("\n");
      }
      System.out.print(sb);
	}
}

 

윈도우의 경우 ctrl + Z, 리눅스 계열의 경우 ctrl + D를 입력하면 EOF를 입력할 수 있다.

 

 

 

728x90
Comments