본문 바로가기
JAVA/자바 실습 중심 학습

사용자 입력 처리 (Scanner 사용법)

by DEVLIB 2025. 4. 11.
728x90

Scanner란?

  • Scanner는 자바에서 콘솔 입력을 처리하는 클래스입니다.
  • 사용자가 키보드로 입력한 내용을 변수에 저장해서 사용할 수 있어요.

기본 사용법

import java.util.Scanner;

public class InputExample {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);  // Scanner 객체 생성

        System.out.print("이름을 입력하세요: ");
        String name = sc.nextLine();          // 문자열 입력

        System.out.print("나이를 입력하세요: ");
        int age = sc.nextInt();               // 정수 입력

        System.out.println("안녕하세요, " + name + "님. 나이는 " + age + "살입니다.");
    }
}

주요 입력 메서드

메서드 설명 예시
next() 단어 한 개 입력 (공백 전까지만) 이름, ID 등
nextLine() 한 줄 전체 입력 (띄어쓰기 포함) 주소, 문장 등
nextInt() 정수 입력 나이, 숫자
nextDouble() 실수 입력 가격, 키 등
nextBoolean() true/false 입력 선택 여부 등

실습 예제

숫자 2개 입력받아 합 출력

Scanner sc = new Scanner(System.in);
System.out.print("첫 번째 숫자: ");
int num1 = sc.nextInt();

System.out.print("두 번째 숫자: ");
int num2 = sc.nextInt();

System.out.println("합: " + (num1 + num2));

한 줄 전체 입력받기 (띄어쓰기 포함)

System.out.print("당신의 자기소개를 입력하세요: ");
String intro = sc.nextLine();

System.out.println("입력한 내용: " + intro);

주의사항: nextLine()과 nextInt() 같이 쓸 때 문제

int age = sc.nextInt();     // 숫자 입력
sc.nextLine();              // 엔터 처리
String name = sc.nextLine(); // 제대로 작동

nextInt() 다음에 nextLine()을 쓰면 엔터(\n) 가 남아서 문제가 생길 수 있어요.
이때는 sc.nextLine();을 한 줄 추가해 버퍼를 비워주세요.


마무리 요약


개념 요약
Scanner 입력을 받는 도구 (System.in으로 연결)
.nextInt() 정수 입력
.nextLine() 한 줄 전체 입력
입력 순서 중요 nextLine() 앞에 nextInt()가 오면 엔터 처리 주의

Scanner 객체 마무리 처리 (선택)

sc.close();  // 입력이 끝났으면 자원 해제
LIST