이 문제에서는 테스트케이스 (T)가 주어지지않는다. 즉, 종료시점을 알 수 없다는 것이다. 이 전 문제에서는 모두 테스트케이스가 주어지고, 그 만큼만 수행을 하면 되었지만 이 문제는 다르다.
이 문제에서는 입력을 받지 않을 때가 종료시점이다.
이 후의 문제는 입력받은 두 수를 출력해주면 된다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer st;
String str;
// while((str = br.readLine()) != null)
while(true) {
str = br.readLine();
if(str == null) break;;
st = new StringTokenizer(str, " ");
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
sb.append((A + B));
sb.append("\n");
}
System.out.println(sb);
}
}
이 문제는 다른 문제와 동일하게 한 줄을 읽어들여 두 숫자를 합치는데
문제는 케이스가 정해져있지 않다는 것이다. 이번 문제에서는 BufferedReader를 이용하여
문자열을 읽어들이는데 만약 입력한 문자열이 없을 경우 br.readLine();는 null을 반환한다.
while문의 종료시점은 br.readLine()의 반환이 null일 때이다.
while(true) {
str = br.readLine();
if(str == null) break;;
st = new StringTokenizer(str, " ");
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
sb.append((A + B));
sb.append("\n");
}
System.out.println(sb);