
* 개념 복습과 학습 정도를 파악하고자 포스팅합니다!
* 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 |