[JAVA] hasNext() (백준 11718번 : 그대로 출력하기)

이한솔·2023년 11월 1일
0

JAVA

목록 보기
1/9

JAVA를 다시 공부한다는 마음으로 알고리즘 문제를 쉬운 문제부터 천천히 풀고 있다. 그러다가 마주친 백준 11718번 문제는 예상치 못한 곳에서 난관을 마주한 기분이었다.

백준 : 11718번 그대로 출력하기

이전 문제에서는 몇 번 반복할 지 횟수를 알려줘서 그대로 반복문을 써서 풀었는데, 이번에는 몇 번 입력할 건지 말하지 않아서 찾아보다 JAVA Scanner의 매서드 중 하나인 hasNext()를 사용해서 풀이할 수 있었다

hasNext()

Scanner 클래스에서 사용되는 메서드 중 하나로, 입력 소스(주로 표준 입력, 파일 또는 문자열)에서 다음 입력 토큰(일련의 문자열)이 있는지 여부를 확인하기 위해 사용된다.

hasNext()는 주로 반복적인 일을 할 때 주로 사용된다. 예시 코드 중 하나는 다음과 같다

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int sum = 0;
        
        while (scanner.hasNextInt()) {
            int num = scanner.nextInt();
            sum += num;
        }

        System.out.println("입력된 숫자의 합계: " + sum);
    }
}

여기서 hasNextInt() 메서드는 입력된 값이 정수인지 여부를 확인하고, hasNextInt()가 true를 반환하는 동안만 입력된 값을 읽어와 합계를 계산한다. 즉, 사용자가 더 이상 정수를 입력하지 않으면 hasNextInt()가 false를 반환하여 프로그램은 종료된다.

해당 백준 문제는 아래와 같이 제출하였다.

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {	
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
           System.out.println(sc.nextLine());
        }
	}
}
profile
개인 공부용

0개의 댓글