본문 바로가기
JAVA

[자바/JAVA] - Scanner (예제 있음)

by wook99 2024. 3. 23.

그동안 System.out을 통해서 console에 출력을 했었다.

그런데 System.in을 사용하면 사용자의 입력을 받을 수도 있다.

자바가 제공하는 System.in을 통해 사용자 입력을 받으려면 여러 과정을 거쳐야 해서 복잡한데,

이런 문제를 해결하기 위해 Scanner라는 클래스를 제공한다!

한번 사용해보자

 

Scanner

 

1. 사용자의 이름, 나이, 키 입력받아 출력

import java.util.Scanner;

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

        System.out.print("이름을 입력하세요 : ");
        String name = scanner.nextLine();	//nextLine() : 엔터를 입력할 때 까지 문자를 가져온다.
        System.out.println("입력한 문자열 : " + name);

        System.out.print("나이를 입력하세요 : ");
        int age = scanner.nextInt();	//nextInt() : 입력을 int형으로 가져옴.
        System.out.println("입력한 정수 : " + age);

        System.out.print("키를 입력하세요 : ");
        double height = scanner.nextDouble();	//nextDouble() : 입력을 double형으로 가져옴.
        System.out.println("입력한 실수 : " + height);

        System.out.println(name + "님의 나이 : " + age + ", 키 : " + height);
    }
}

/* 
입력한 값 : wook, 25, 170
	
실행결과 :

    이름을 입력하세요 : wook
    입력한 문자열 : wook
    나이를 입력하세요 : 25
    입력한 나이 : 25
    키를 입력하세요 : 170
    입력한 키 : 170.0
    wook님의 나이 : 25, 키 : 170.0

*/

 

 

 


2. 사용자가 입력한 두 값의 비교(조건문)

 

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();

        int max;
        /*
        if(num1>num2){
            max = num1;
        }else{
            max = num2
        }
        아래의 삼항연산자 식과 같음.
        */
        max = num1 > num2 ? num1 : num2;
        System.out.println("둘 중 더 큰 수는 "+ max + "입니다." );
    }
}

/* 
    입력 : 100, 300
    
    실행결과 : 
    첫 번째 숫자를 입력하세요 : 100
    두 번째 숫자를 입력하세요 : 300
    둘 중 더 큰 수는 300입니다.
*/

3. 사용자가 입력한 수의 누적합 출력

import java.util.Scanner;

public class ScannerWhile3 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int sum = 0;
        while(true){
            System.out.println("0을 입력하면 프로그램이 종료됩니다.");
            System.out.print("숫자를 입력해주세요 : ");
            int num = scanner.nextInt();
            if(num == 0){
                System.out.println("프로그램이 종료됩니다.");
                break;
            }
            sum += num;
            System.out.println("합은 "+ sum + "입니다");
            System.out.println();
        }
    }
}

/*
	입력 : 1, 2, 0
    
    실행결과:
    0을 입력하면 프로그램이 종료됩니다.
    숫자를 입력해주세요 : 1
    합은 1입니다

    0을 입력하면 프로그램이 종료됩니다.
    숫자를 입력해주세요 : 2
    합은 3입니다

    0을 입력하면 프로그램이 종료됩니다.
    숫자를 입력해주세요 : 0
    프로그램이 종료됩니다.
 */

4. 상품 구매 프로그램

import java.util.Scanner;

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

        int totalPrice = 0;	//결제할 금액

        while(true) {
        	System.out.println("3개중 1개의 옵션번호를 입력해주세요.");
            System.out.println("1 : 상품명 입력, 2: 결제, 3: 프로그램 종료");
            int option = scanner.nextInt();
            scanner.nextLine();

            if (option == 1) {
                System.out.print("구매할 상품의 상품명을 입력하세요 : ");
                String product = scanner.nextLine();

                System.out.print("상품의 가격을 입력하세요 : ");
                int price = scanner.nextInt();
                scanner.nextLine();

                System.out.print("구매 수량을 입력하세요 : ");
                int quantity = scanner.nextInt();
                scanner.nextLine();

                totalPrice += price * quantity;
                System.out.println("상품명 : " + product + " 가격 : " + price + " 수량 : " + quantity + " 합계 : " + price * quantity);
            } else if (option == 2) {
                System.out.println("총 비용은 : " + totalPrice + "입니다. 결제를 진행합니다.");
                totalPrice = 0;		//결제 후 결제할 금액 0원
            } else {
                System.out.println("프로그램을 종료합니다.");
                break;
            }
        }
    }
}

/* 
    입력 순서: 
    1, 컴퓨터, 1000000, 2 
    1, 노트북, 800000, 3
    2
    3 
*/

/*
	실행결과:
    3개중 1개의 옵션번호를 입력해주세요.
    1 : 상품명 입력, 2: 결제, 3: 프로그램 종료
    1
    구매할 상품의 상품명을 입력하세요 : 컴퓨터
    상품의 가격을 입력하세요 : 1000000
    구매 수량을 입력하세요 : 2
    상품명 : 컴퓨터 가격 : 1000000 수량 : 2 합계 : 2000000
    3개중 1개의 옵션번호를 입력해주세요.
    1 : 상품명 입력, 2: 결제, 3: 프로그램 종료
    1
    구매할 상품의 상품명을 입력하세요 : 노트북
    상품의 가격을 입력하세요 : 800000
    구매 수량을 입력하세요 : 3
    상품명 : 노트북 가격 : 800000 수량 : 3 합계 : 2400000
    3개중 1개의 옵션번호를 입력해주세요.
    1 : 상품명 입력, 2: 결제, 3: 프로그램 종료
    2
    총 비용은 : 4400000입니다. 결제를 진행합니다.
    3개중 1개의 옵션번호를 입력해주세요.
    1 : 상품명 입력, 2: 결제, 3: 프로그램 종료
    3
    프로그램을 종료합니다.
 */