[Java] 자바는 입력을 어떻게 받아? - Scanner

2026. 4. 20. 17:13·Language/Java


* 개념 복습과 학습 정도를 파악하고자 포스팅합니다!

* Claude, ChatGPT를 활용하여 이미지를 생성하고 활용합니다.

 

Java Scanner

1. Scanner란?

사용자로부터 키보드 입력을 받는 클래스입니다.

지금까지 포스팅 내용 속 코드내부에서 값을 직접 써넣었다면, Scanner를 쓰면 프로그램 실행 중에 사용자가 직접 값을 입력할 수 있죠.

 

Scanner는 java.util 패키지에 포함되어 있어서 사용하기 전에 반드시 import가 필요해요.


2. Scanner 사용법

Import와 객체 생성

import java.util.Scanner;  // 반드시 맨 위에 선언

public class Main {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);  // Scanner 객체 생성

        // ... 입력 코드 ...

        sc.close();  // 사용 후 닫기 (권장)
    }
}

new Scanner(System.in)에서 System.in은 키보드 입력 스트림이에요. Scanner가 이 스트림을 읽어서 값을 반환해줘요.

 

입력 메서드 종류


3. next() vs nextLine()

두 메소드의 차이를 모르면 가장 흔한 버그가 발생합니다


4. nextLine() 버그

nextInt() 같은 숫자 입력 후 nextLine()을 쓰면 빈 문자열이 읽히는 버그가 생겨요.


5. 사용 예제

예제 1 - 기본 입력

import java.util.Scanner;

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

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

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

        System.out.println("이름: " + name + ", 나이: " + age);

        sc.close();
    }
}
이름을 입력하세요: 홍길동
나이를 입력하세요: 25
이름: 홍길동, 나이: 25

 

예제 2 - 두수의 합

import java.util.Scanner;

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

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

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

        System.out.println("합계: " + (a + b));

        sc.close();
    }
}
첫 번째 숫자: 10
두 번째 숫자: 20
합계: 30

 

예제 3 - 조건문과 결합(홀짝 판별)

import java.util.Scanner;

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

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

        if (n % 2 == 0) {
            System.out.println(n + "은 짝수입니다.");
        } else {
            System.out.println(n + "은 홀수입니다.");
        }

        sc.close();
    }
}

 

예제 4 - 반복문의 결합(합계 구하기)

import java.util.Scanner;

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

        System.out.print("몇 개의 숫자를 입력할까요? ");
        int count = sc.nextInt();

        int sum = 0;
        for (int i = 1; i <= count; i++) {
            System.out.print(i + "번째 숫자: ");
            sum += sc.nextInt();
        }

        System.out.println("합계: " + sum);
        System.out.println("평균: " + (double) sum / count);

        sc.close();
    }
}
몇 개의 숫자를 입력할까요? 3
1번째 숫자: 10
2번째 숫자: 20
3번째 숫자: 30
합계: 60
평균: 20.0

 

예제 5 - 간단한 계산기

import java.util.Scanner;

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

        System.out.print("첫 번째 숫자: ");
        double a = sc.nextDouble();

        System.out.print("연산자 (+, -, *, /): ");
        String op = sc.next();

        System.out.print("두 번째 숫자: ");
        double b = sc.nextDouble();

        double result;

        switch (op) {
            case "+": result = a + b; break;
            case "-": result = a - b; break;
            case "*": result = a * b; break;
            case "/":
                if (b == 0) {
                    System.out.println("0으로 나눌 수 없습니다.");
                    sc.close();
                    return;
                }
                result = a / b;
                break;
            default:
                System.out.println("잘못된 연산자입니다.");
                sc.close();
                return;
        }

        System.out.println("결과: " + result);
        sc.close();
    }
}
첫 번째 숫자: 10
연산자 (+, -, *, /): *
두 번째 숫자: 3
결과: 30.0

 


정리

 

자바 개념들을 다 정리하고 난 뒤에 시간이 나면 BufferedReader도 공부하면서 정리해볼게요!!

감사합니다 :)

'Language > Java' 카테고리의 다른 글

[Java] 메서드  (0) 2026.04.20
[Java] 클래스와 객체  (0) 2026.04.20
[Java] 형변환(Type Casting)  (0) 2026.04.20
[Java] 스코프(Scope)  (0) 2026.04.20
[Java] 반복문  (0) 2026.04.20
'Language/Java' 카테고리의 다른 글
  • [Java] 메서드
  • [Java] 클래스와 객체
  • [Java] 형변환(Type Casting)
  • [Java] 스코프(Scope)
BackendInho
BackendInho
항상 열정적으로 부딪히고 깨닫는 주니어 백엔드 개발자의 여정을 기록합니다!
  • BackendInho
    Inho.devlog
    BackendInho
  • 전체
    오늘
    어제
    • 분류 전체보기 (41)
      • TIL (0)
      • Language (21)
        • Java (21)
      • Backend (8)
        • Spring (8)
      • Database (0)
        • SQL (0)
      • CS (8)
        • Computer Structure (2)
        • Network (2)
        • OS (1)
        • Data Structure & Algorithms (3)
      • Devops (0)
        • Docker & Kubernetes (0)
      • Coding-Test (1)
        • Programmers (3)
        • LeatCode (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    API
    CS
    HTTP
    java
    REST
    REST API
    Spring
    Spring Boot
    Web
    공간복잡도
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
BackendInho
[Java] 자바는 입력을 어떻게 받아? - Scanner
상단으로

티스토리툴바