---
id: java-user-input
title: "Java User Input"
category: "Programming_Language"
status: "draft"
verification_status: "conceptual"
canonical_id: ""
aliases: ["Scanner class", "자바 사용자 입력"]
duplicate_of: ""
source_trust_level: "B"
confidence_score: 0.9
created_at: 2026-07-04
updated_at: 2026-07-04
review_reason: ""
merge_history: []
tags: ["java", "programming", "w3schools", "scanner", "user-input"]
raw_sources: ["https://www.w3schools.com/java/java_user_input.asp"]
applied_in: []
github_commit: ""
---

# [[Java User Input]]

## 🎯 한 줄 통찰 (One-line insight)
Reading the wrong type from Scanner (e.g., text where a number is expected via `nextInt()`) throws an `InputMismatchException` rather than failing silently or auto-converting — user input handling in Java requires either exception handling or careful type-matched reads. [S1]

## 🧠 핵심 개념 (Core concepts)
- **`Scanner`** — class in `java.util` used to read user input. [S1]
- **Type-specific read methods** — `nextBoolean()`, `nextByte()`, `nextDouble()`, `nextFloat()`, `nextInt()`, `nextLine()` (String), `nextLong()`, `nextShort()`. [S1]
- **`System.in`** — the standard input stream passed to `new Scanner(System.in)`. [S1]
- **Mismatched input risk** — wrong-type input (e.g. text into `nextInt()`) throws `InputMismatchException`. [S1]

## 📖 세부 내용 (Details)
- Basic string input: `Scanner myObj = new Scanner(System.in); String userName = myObj.nextLine();`. [S1]
- Mixed-type input: `String name = myObj.nextLine(); int age = myObj.nextInt(); double salary = myObj.nextDouble();`. [S1]

## ⚖️ 모순 및 업데이트 (Contradictions & updates)
- **타입 불일치 예외**: 잘못된 타입의 입력을 읽으면 InputMismatchException이 발생한다는 점이 명시되고, 예외 처리는 별도 Exceptions 챕터로 안내됨. [S1]

## 🛠️ 적용 사례 (Applied in summary)
현재 발견된 실제 적용 사례가 없습니다 — 이름/나이/급여처럼 여러 타입의 사용자 입력을 순차적으로 읽는 표준 패턴이다. [S1]

## 💻 코드 패턴 (Code patterns)
Reading mixed-type user input with Scanner (Java):
```java
import java.util.Scanner;
class Main {
    public static void main(String[] args) {
        Scanner myObj = new Scanner(System.in);
        String name = myObj.nextLine();
        int age = myObj.nextInt();
        double salary = myObj.nextDouble();
    }
}
```

## ✅ 검증 상태 및 신뢰도
- **상태:** draft
- **검증 단계:** conceptual
- **출처 신뢰도:** B (W3Schools — widely used educational reference, not a primary standards body)
- **신뢰 점수:** 0.90
- **중복 검사 결과:** 신규 생성 (New discovery)

## 🔗 지식 그래프 (Knowledge Graph)
- **상위/루트:** [[Java Tutorial]]
- **관련 개념:** [[Java Packages]], [[Java Date]], [[Java Try Catch]]
- **참조 맥락:** 사용자 입력 처리 — 예외 처리(Try Catch) 챕터에서 잘못된 입력 대응법이 다뤄짐.

## 📚 출처 (Sources)
- [S1] W3Schools — Java User Input (Scanner) — https://www.w3schools.com/java/java_user_input.asp

## 📝 변경 이력 (Change history)
- 2026-07-04: Initial draft synthesized from the W3Schools "Java User Input" page (Astra wiki-curation, P-Reinforce v3.1 format).
