본문 바로가기
Back-End/Java

자바에서 Scanner 클래스를 활용한 사용자 입력 받기

by 두두리안 2024. 10. 24.
728x90

자바에서 System.out을 통해 출력을 할 수 있는 것처럼, System.in을 통해 사용자 입력을 받을 수 있습니다. 하지만 System.in을 사용하는 방식은 약간 복잡하여, 이를 간편하게 해주는 도구가 필요합니다. 자바에서는 이러한 문제를 해결하기 위해 Scanner 클래스를 제공합니다. 이 클래스를 사용하면 사용자의 입력을 쉽게 처리할 수 있습니다.

 

이번 글에서는 Scanner 클래스를 사용하여 다양한 방식으로 사용자 입력을 처리하는 방법을 살펴보겠습니다.

1. 기본적인 Scanner 사용법

예제 코드 1: 간단한 문자열, 정수, 실수 입력받기

package scanner;
import java.util.Scanner;

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

        // 문자열 입력 받기
        System.out.print("문자열을 입력하세요:");
        String str = scanner.nextLine();
        System.out.println("입력한 문자열: " + str);

        // 정수 입력 받기
        System.out.print("정수를 입력하세요:");
        int intValue = scanner.nextInt();
        System.out.println("입력한 정수: " + intValue);

        // 실수 입력 받기
        System.out.print("실수를 입력하세요:");
        double doubleValue = scanner.nextDouble();
        System.out.println("입력한 실수: " + doubleValue);
    }
}

실행 예시:

문자열을 입력하세요:hello
입력한 문자열: hello
정수를 입력하세요:10
입력한 정수: 10
실수를 입력하세요:1.5
입력한 실수: 1.5

2. 두 숫자의 합 계산하기

이번에는 사용자가 입력한 두 숫자의 합을 계산해보겠습니다.

예제 코드 2: 두 숫자 더하기

package scanner;
import java.util.Scanner;

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

        System.out.print("첫 번째 숫자를 입력하세요:");
        int num1 = scanner.nextInt();

        System.out.print("두 번째 숫자를 입력하세요:");
        int num2 = scanner.nextInt();

        int sum = num1 + num2;
        System.out.println("두 숫자의 합: " + sum);
    }
}

실행 예시:

첫 번째 숫자를 입력하세요:10
두 번째 숫자를 입력하세요:20
두 숫자의 합: 30

3. 더 큰 수 출력하기

두 개의 정수를 입력받아 더 큰 수를 출력하는 프로그램을 만들어보겠습니다. 만약 두 숫자가 같으면 "두 숫자는 같습니다."라는 메시지를 출력합니다.

예제 코드 3: 큰 수 비교하기

package scanner;
import java.util.Scanner;

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

        System.out.print("첫 번째 숫자를 입력하세요:");
        int num1 = scanner.nextInt();

        System.out.print("두 번째 숫자를 입력하세요:");
        int num2 = scanner.nextInt();

        if (num1 > num2) {
            System.out.println("더 큰 숫자: " + num1);
        } else if (num2 > num1) {
            System.out.println("더 큰 숫자: " + num2);
        } else {
            System.out.println("두 숫자는 같습니다.");
        }
    }
}

실행 예시:

첫 번째 숫자를 입력하세요:10
두 번째 숫자를 입력하세요:20
더 큰 숫자: 20
첫 번째 숫자를 입력하세요:5
두 번째 숫자를 입력하세요:5
두 숫자는 같습니다.

4. 반복문과 함께 사용하기

이제 Scanner와 반복문을 결합하여, 사용자가 원하는 만큼 입력을 받을 수 있는 프로그램을 만들어보겠습니다. 사용자가 "exit"을 입력하면 프로그램이 종료됩니다.

예제 코드 4: 문자열 반복 입력

package scanner;
import java.util.Scanner;

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

        while (true) {
            System.out.print("문자열을 입력하세요(exit: 종료):");
            String str = scanner.nextLine();

            if (str.equals("exit")) {
                System.out.println("프로그램을 종료합니다.");
                break;
            }

            System.out.println("입력한 문자열: " + str);
        }
    }
}

실행 예시:

문자열을 입력하세요(exit: 종료):hello
입력한 문자열: hello
문자열을 입력하세요(exit: 종료):안녕?
입력한 문자열: 안녕?
문자열을 입력하세요(exit: 종료):exit
프로그램을 종료합니다.

5. 두 숫자의 합을 반복해서 계산하기

이번에는 사용자가 두 숫자를 입력받고, 그 숫자의 합을 계산하는 프로그램을 반복적으로 실행해보겠습니다. 만약 두 숫자 모두 0을 입력하면 프로그램을 종료합니다.

예제 코드 5: 반복적으로 숫자 더하기

package scanner;
import java.util.Scanner;

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

        System.out.println("첫 번째 숫자와 두 번째 숫자 모두 0을 입력하면 프로그램을 종료합니다.");

        while (true) {
            System.out.print("첫 번째 숫자를 입력하세요:");
            int num1 = scanner.nextInt();

            System.out.print("두 번째 숫자를 입력하세요:");
            int num2 = scanner.nextInt();

            if (num1 == 0 && num2 == 0) {
                System.out.println("프로그램 종료");
                break;
            }

            int sum = num1 + num2;
            System.out.println("두 숫자의 합: " + sum);
        }
    }
}

실행 예시:

첫 번째 숫자와 두 번째 숫자 모두 0을 입력하면 프로그램을 종료합니다.
첫 번째 숫자를 입력하세요:10
두 번째 숫자를 입력하세요:20
두 숫자의 합: 30
첫 번째 숫자를 입력하세요:0
두 번째 숫자를 입력하세요:0
프로그램 종료

마무리

위에서 살펴본 것처럼 Scanner 클래스를 사용하면 사용자로부터 문자열, 숫자 등의 입력을 손쉽게 받을 수 있습니다. 또한 반복문과 함께 사용하여 프로그램이 종료되지 않고 지속적으로 입력을 받는 방식도 구현할 수 있습니다.

728x90