import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class BOJ11718_v1 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input; // input 선언만
while ((input = br.readLine()) != null) { // 입력값이 null이 아니면 true 이므로 계속 실행
System.out.println(input);
}
br.close();
}
}
# 입/출력 결과
# 과정
BufferedReader 객체 생성
String input 선언
while문 사용해서 input값이 null이 아니면 true 이므로 계쏙 실행하도록 작성
BufferedReader .close() 하기
# 메모
내가 작성한 코드가 틀려서 원인을 몰랐다.
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
boolean visible = false;
while (!visible) {
String input = br.readLine();
System.out.println(input);
if (input == null || input.isEmpty()) {
visible = true;
}
}
br.close();
}
}
이렇게 작성했는데, null이거나 비어 있으면 입력을 멈추도록 했는데 왜 틀린거지 싶었다. 저번에 본 EOF 생각해서 조건문을 추가해본건데 왜 틀린건지 이해가 안 갔다. 그래서 결국 chat-gpt한테 물어보고 문제를 해결했다.
문제를 보면 빈 줄은 주어지지 않는다고 했는데 나는 input.isEmpty()를 넣었기 때문이다. 그리고 null 값을 출력할 수도 있기 때문에 while (true) { ... } 로 반복을 하되, if 문에서는 input == null 이면, break;를 걸어주어야했다.