[BaekJoon] 11718번 그대로 출력하기 문제풀이 (Success)
11718번: 그대로 출력하기
입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시
www.acmicpc.net
☕Language: Java
⭐ EOF: 더이상 읽을 수 있는 데이터가 없을 경우 사용
→ 입력값을 얼마나 받을지 명시하지 않을 경우 사용
1. Scanner Class
: hasNext()
: 입력값이 있을 경우 - true, 입력값이 없을 경우 - false
2. BufferedReader Class
: EOF 처리 메서드가 없으므로 입력값이 null일 경우, 반복문 종료
➕ String str 선언 이유
1. while 조건문 안에 br.readLine()을 바로 선언할 경우,
br 변수의 초기화 문제 또는 null값 할당 문제로 NullPointerException이 발생할 수 있음
⭐ str이 null인 경우는 br.readLine()의 결과로 얻은 값이 null인 상태를 의미하므로 NullPointerException이 발생하지 않지만, br이 null인 경우는 br 변수 자체가 null을 가리키는 상태라는 점에서 NullPointerException이 발생할 수 있음
2. String str = br.readLine()으로 선언 후, str을 사용할 경우,
while문 안에서 br.readLine()이 호출되지 않는 문제 발생(while문 안에서 br.readLine()이 직접 호출되어야 함)
(=1번만 호출된 br.readLine()에 값이 입력될 경우, line 변수에 저장되어 항상 null이 아니므로 무한루프에 빠질 가능성이 존재함)
3. String 선언과 함께 while 조건문을 사용할 경우,
문법적으로 허용되지 않음
소스 코드
🔗 HJ0216/TIL/BOJ
참고 자료