번역

Java - 사용자 입력

안녕하세요, 미래의 Java 프로그래머 여러분! 오늘, 우리는 Java에서 사용자 입력의 흥미로운 세계로 여행을 떠날 거예요. 여러분의 친절한 이웃 컴퓨터 과학 선생님으로서, 저는 여러분이 이 프로그래밍의 필수 요소를 이해하는 데 도움을 드릴 것입니다. 믿어주세요, 이를 마스터하면 여러분은 상호작용 프로그램을 소환하는 마법사 같아지실 거예요!

Java - User Input

사용자 입력의 중요성

사용자가 숫자를 추측해야 하는 게임을 만드는 것을 상상해보세요. 사용자 입력이 없다면, 여러분의 게임은 페인트가 걸리는 것을 보는 것만큼 흥미로울 거예요! 사용자 입력은 프로그램에 살을 불어넣어, 그들을 동적이고 상호작용적으로 만들어줍니다. 그것은 프로그램에 귀를 주어 사용자가 무엇을 말하고 있는지 듣는 것과 같아요.

마법의 지팡이: Scanner 클래스

Java에서는 사용자 입력을 캡처하는 데 마법의 지팡이로 Scanner 클래스를 사용합니다. 그것은 사용자가 입력한 것을 듣고 프로그램으로 정보를 가져오는 친절한 로봇과 같아요. 이 도우미를 어떻게 부르는지 살펴보겠습니다:

import java.util.Scanner;

public class UserInputExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // 더 많은 코드가 여기 들어갈 것입니다
    }
}

이 마법처럼 보이는 코드에서 우리는 두 가지 중요한 일을 수행하고 있습니다:

  1. java.util 패키지에서 Scanner 클래스를 import합니다.
  2. System.in(키보드 입력을 나타냄)에서 읽을 새로운 Scanner 객체를 생성합니다.

첫 번째 입력을 받아보자

이제 Scanner가 준비되었으니, 사용자가 그들의 이름을 묻는 방법을 살펴보겠습니다:

System.out.print("당신의 이름은 무엇인가요? ");
String name = scanner.nextLine();
System.out.println("안녕, " + name + "! 자바 프로그래밍에 오신 것을 환영합니다!");

이를 분석해보겠습니다:

  1. System.out.print()를 사용하여 사용자에게 질문을 묻습니다.
  2. scanner.nextLine()은 사용자가 무언가를 입력하고 Enter를 누를 때까지 기다립니다.
  3. 사용자가 입력한 것을 name 변수에 저장합니다.
  4. 마지막으로, 사용자의 이름으로 인사를 건넵니다!

이 프로그램을 실행하면 다음과 같이 보일 수 있습니다:

당신의 이름은 무엇인가요? Alice
안녕, Alice! 자바 프로그래밍에 오신 것을 환영합니다!

이不是很 마법적인가요? 우리는 프로그램과 대화를 나누고 있습니다!

다양한 유형의 입력

이제, 우리는 다양한 유형의 데이터를 입력하는 방법을 탐구해보겠습니다. Scanner 클래스는 매우 다재다능하며, 다양한 데이터 유형을 처리할 수 있습니다. 다음은 우리가 사용할 수 있는 메서드 목록입니다:

메서드 설명
nextLine() 문자열(String) 값을 읽습니다
nextInt() 정수(int) 값을 읽습니다
nextDouble() 실수(double) 값을 읽습니다
nextBoolean() 논리(boolean) 값을 읽습니다
next() 단일 단어(문자열)를 읽습니다

이제 이를 더 복잡한 예제에서 사용해보겠습니다:

import java.util.Scanner;

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

        System.out.print("당신의 나이는 몇 살인가요? ");
        int age = scanner.nextInt();

        System.out.print("당신의 키는 몇 미터인가요? ");
        double height = scanner.nextDouble();

        System.out.print("당신은 학생입니까? (true/false): ");
        boolean isStudent = scanner.nextBoolean();

        scanner.nextLine(); // 남은 줄바꿈 문자를 소비합니다

        System.out.print("당신의 즐겨찾는 색은 무엇인가요? ");
        String color = scanner.nextLine();

        System.out.println("\n당신이 말한 것들입니다:");
        System.out.println("나이: " + age);
        System.out.println("키: " + height + " 미터");
        System.out.println("학생: " + isStudent);
        System.out.println("즐겨찾는 색: " + color);

        scanner.close(); // Scanner를 닫는 것을 잊지 마세요!
    }
}

이 프로그램은 친절한 로봇 인터뷰자와 같아요! 그것은 다양한 정보를 요청하고 그것들을 요약합니다. 몇 가지 중요한 점을 분석해보겠습니다:

  1. 다른 메서드(nextInt(), nextDouble(), nextBoolean(), nextLine())을 사용하여 다양한 유형의 입력을 읽습니다.
  2. nextBoolean() 다음에 추가된 scanner.nextLine()을 알아보세요. 이것은 Enter를 누르면 남는 줄바꿈 문자를 처리하는 작은 트릭입니다.
  3. 마지막으로, scanner.close()를 호출하여 Scanner를 닫습니다. 자기 자신을 정리하는 것은 좋은 예입니다!

입력 오류 처리

이제, 사용자가 예상치 못한 것을 입력하면 어떻게 될까요? 예를 들어, 우리가 나이를 묻는데 "스물다섯"이라고 입력하면 어떻게 될까요? 우리의 프로그램은 90년대의 컴퓨터처럼 빨리 충돌하겠죠! 이를 방지하기 위해 우리는 오류 처리를 사용할 수 있습니다:

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

public class SafeUserInput {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int age = 0;
        boolean validInput = false;

        while (!validInput) {
            try {
                System.out.print("당신의 나이는 몇 살인가요? ");
                age = scanner.nextInt();
                validInput = true;
            } catch (InputMismatchException e) {
                System.out.println("이런! 그것은 유효한 나이가 아닙니다. 숫자를 입력해 주세요.");
                scanner.nextLine(); // 유효하지 않은 입력을 지웁니다
            }
        }

        System.out.println("당신의 나이는: " + age);
        scanner.close();
    }
}

이 코드는 인내심 있는 교사와 같아요. 나이를 입력받을 때까지 계속 묻습니다. 사용자가 숫자가 아닌 것을 입력하면 친절하게 다시 시도하도록 요청합니다.

결론

축하합니다! 여러분은 Java 프로그램을 상호작용형으로 만들기 위해 사용자 입력을 받는 방법을 배웠습니다. 기억하세요, 연습이 실력을 만든다. 사용자에게 입력을 요청하는 자신의 프로그램을 만들어보세요 - 아마도 간단한 계산기, 또는 사용자가 숫자를 추측해야 하는 게임 같은 것이죠. 가능성은 끝없습니다!

우리의 이야기를 마무리할 때, 여러분에게 잠깐의 프로그래밍 재미를 드리겠습니다: 자바 개발자들은 왜 안경을 쓰는 거죠?因为它們은 C#! (이해하셨나요? C-Sharp? 좋아요, 나는 나를 나가겠습니다...)

코딩을 계속하고, 배우며, 가장 중요한 것은 즐기세요! 다음 번에 뵙겠습니다, 여러분의 친절한 이웃 자바 교사가 드립니다. 즐거운 코딩하세요!

Credits: Image by storyset