[Java] Scanner와 예외처리

dwkim·2023년 3월 1일

Scanner
: 키보드에 들어오는 데이터 스캔

  • nextInt(); 다음에 nextLine(); 쓰기!
  • Scanner 다 쓰고 나면 꼭 close();해줘야 함

설명영상

import java.util.InputMismatchException;
import java.util.Scanner;

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

        int input = 0; 
        // 중괄호 안에 선언된 변수는 중괄호에서만 쓸 수 있음
        // input을 while문 밖에서도 사용하고 싶다면 while문 밖에 선언해야 함
        
        while ( true ) {
            System.out.printf("숫자 : ");

            try {
                input = sc.nextInt(); // 대기 (숫자 하나가 입력될 때까지)
                sc.nextLine(); // 버퍼 비우기- nextInt 후에 딱히 다른 이유가 없다면 버퍼를 비워줘야 한다!(암기)
                break;
            }
            catch ( InputMismatchException e ) {
                /* 여기에 버퍼를 비우는 코드가 또 있는 이유 : 
                예외가 발생된 경우에는 try문에서 sc.nextInt();까지만 실행되고 여기로 바로 넘어올 것이기 때문 */
                sc.nextLine();
                System.out.println("숫자를 입력해주세요.");
            }
        }

        System.out.printf("입력된 숫자 : %d\n", input);

        sc.close(); // Scanner 다 쓰고 나면 꼭 close해줘야 함!
    }
}
profile
예비 백엔드 개발자

0개의 댓글