문제

(백준) 11718번 '그대로 출력하기'

서윤-정 2023. 8. 5. 21:24

 

 

import java.util.Scanner;

public class Main{
	public static void main(String[] args){
    	Scanner sc = new Scanner(System.in);
        
        while(sc.hasNextLine()){
        	String line = sc.nextLine();
            System.out.println(line);
		}
	}
}

 

 

✔️ hasNextLine()

Scanner 클래스 메서드 중 하나로, 입력 스트림으로부터 더 읽을 줄이 있는지를 확인하는 역할을 한다.

boolean값을 반환하며, true를 반환하면 아직 더 읽을 줄이 있음을 의미하고,

false를 반환하면 더 이상 읽을 줄이 없음을 의미한다.

주로 while루프와 함께 사용하여 입력을 처리할때 유용하게 쓰인다.

입력이 몇줄인지 미리 알 수 없을 때 사용하며, 입력을 더 이상 받지 않을 때까지 반복적으로

입력을 처리하는데 도움을 준다.

import java.util.Scanner;

public class HasNextLineExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        while (scanner.hasNextLine()) {
            String line = scanner.nextLine();
            System.out.println("Read line: " + line);
        }

        scanner.close();
    }
}

위 코드는 사용자로부터 여러 줄의 입력을 받고, 각 줄을 읽어서 Read line: 이라는 접두사를 붙여서 출력한다.

사용자가 입력을 더 이상 주지 않으면 false를 반환해서 루프가 종료된다.

 

 

 

✔️while문 쓰는 이유

while문은 입력이 얼마나 들어올지 미리 알 수 없을 때 유용하게 사용된다.

문제에서 실제로 몇 줄의 입력이 주어질지 알 수 없으므로 while문을 사용해서 입력을 계속 받고, 

입력이 더 이상 없을 때까지 처리하는 것이 효과적이다.

for 루프를 사용할 수 있지만, for 루프는 미리 정해진 횟수만큼 반복하는데 적합하다.

 

 

 

✔️nextLine() 

Scanner 클래스의 메서드 중 하나로, 입력 스트림에서 한 줄의 문자열을 읽어온다.

줄 바꿈 문자를 만나거나 입력의 끝에 도달하면 그동안 읽어온 문자열을 반환한다.

반환된 문자열에는 줄바꿈 문자('\n')는 포함되지 않는다.

만약 입력이 없는 경우에는 빈 문자열("")을 반환한다.

사용자가 줄 바꿈 문자열을 입력하면 그 이후의 문자열은 다음 nextLine() 호출에서 읽히게 된다.

(만약 next() 메서드를 사용하여 공백으로 구분된 단어를 읽는다면, 사용자가 공백 문자를 입력하면 다음

next() 호출에서 그 이후의 단어가 읽히게 된다.)

'문제' 카테고리의 다른 글

(백준) 2566번 '최댓값'  (0) 2023.08.08
(백준) 2738번 '행렬 덧셈'  (0) 2023.08.08
(백준) 2908번 '상수'  (0) 2023.08.06
(백준) 1152번 '단어의 개수'  (0) 2023.08.02