본문 바로가기

Java를 자바

[Java] Scanner(사용자 입력받기)

Scanner

import java.util.Scanner;

public class Scanner1 {

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

        System.out.print("문자열을 입력하세요: ");
        String str = scanner.nextLine(); //입력을 String으로 가져온다.
        System.out.println("입력한 문자열: " + str);

        System.out.print("정수를 입력하세요: ");
        int intValue = scanner.nextInt(); //입력을 int로 가져온다.
        System.out.println("입력한 정수: " + intValue);

        System.out.print("실수를 입력하세요: ");
        double doubleValue = scanner.nextDouble(); //입력을 double로 가져온다.
        System.out.println("입력한 실수: " + doubleValue);
    }
}

 

※ 타입을 다르게 입력한다면 오류가 발생한다.

예제

  1. 두 수 입력 받고 두 수의 합 구하기
import java.util.Scanner;

public class Scanner1 {

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

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

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

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

 

2. 입력한 수 모두 더하기 (0을 입력하면 종료)

import java.util.Scanner;

public class Scanner1 {

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

        int sum = 0;

        while(true) {
            System.out.print("수를 입력하세요 (0을 입력하면 종료) : ");
            int num = scanner.nextInt();

            sum += num;

            if(num == 0){
                break;
            }
        }

        System.out.println("합계는 " + sum + " 입니다.");

    }
}

 

3. 홀수 짝수

import java.util.Scanner;

public class Scanner1 {

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


        System.out.print("정수를 입력하세요 : ");
        int num = scanner.nextInt();

        if(num%2 == 0){
            System.out.println(num + "은(는) 짝수입니다.");
        }else{
            System.out.println(num + "은(는) 홀수입니다.");
        }
    }
}

 

4. 구구단 출력

import java.util.Scanner;

public class Scanner1 {

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

        System.out.print("구구단의 단 수를 입력하세요 : ");
        int num = scanner.nextInt();

        System.out.println(num+"단의 구구단");

        for(int i=1; i<10; i++){
            System.out.println(num + " x " + i + " = " + num*i);
        }
    }
}

 

5. 두 변수 값 바꾸기

import java.util.Scanner;

public class Scanner1 {

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

        System.out.print("num1을 입력하세요 : ");
        int num1 = scanner.nextInt();

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

        int temp;

        temp = num1;
        num1 = num2;
        num2 = temp;

        System.out.println("num1 = " + num1);
        System.out.println("num2 = " + num2);

    }
}

 

6. 사이 숫자 출력

ex. 9와 2가 입력되어도 2,3,4,5,6,7,8,9가 출력되어야 함

import java.util.Scanner;

public class Scanner1 {

    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){
            int temp = num1;
            num1 = num2;
            num2 = temp;
        }

        System.out.print("두 숫자 사이의 모든 정수 : ");

        System.out.print(num1);
        for(int i=num1+1; i<=num2; i++){
            System.out.print("," + i);
        }
    }
}

 

7. 상품 가격 계산

import java.util.Scanner;

public class Scanner1 {

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

        while (true) {
            System.out.print("상품의 가격을 입력하세요 (-1을 입력하면 종료) : ");
            int num1 = scanner.nextInt();

            if(num1 == -1){
                break;
            }

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

            System.out.println("총 비용 : " + num1*num2);
        }

        System.out.println("반복문 종료");
    }
}

8. 입력한 숫자의 합계와 평균

- 평균은 소수점 아래까지 계산해야 한다.

import java.util.Scanner;

public class Scanner1 {

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

        int sum = 0;
        int count =0; //숫자의 갯수
        double avg;

        System.out.println("숫자를 입력하세요 (-1을 입력하면 종료)");
        while (true) {
            int input= scanner.nextInt();

            if(input== -1){
                break;
            }

            sum += input;
            count++;
        }

        //방식 2
        /*
        int input = 0;
        while ((input = scaner.nextInt()) != -1) { 
            sum += input;
            count++;
        }
        */

        System.out.println("입력한 숫자들의 합계 : " + sum);
        avg = (double) sum / count;
        System.out.println("입력한 숫자들의 평균 : " + avg);
    }
}
  • sum/count 의 형변환을 하지 않으면 정수의 계산이기 때문에 평균값이 실수가 아닌 정수값이 나오게 된다.
  • while ((input = scaner.nextInt()) != -1) 입력받은 값이 -1이 아니라면 반복문 실행

9. 상품 구매

import java.util.Scanner;

public class Scanner1 {

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

        int sum = 0;

        while(true) {
            System.out.println("1: 상품 입력, 2: 결제, 3: 프로그램 종료");
            int input = scanner.nextInt(); //숫자만 입력받고 엔터는 입력 못받음

            if (input == 1) {
                scanner.nextLine(); //엔터를 입력 받기 위해서 필요⭐

                System.out.print("상품을 입력하세요: ");
                String name = scanner.nextLine();
                System.out.print("상품의 가격을 입력하세요: ");
                int price = scanner.nextInt();
                System.out.print("구매 수량을 입력하세요: ");
                int cnt = scanner.nextInt();

                sum += price * cnt;
                System.out.println("상품명: " + name + " 가격: " + price + " 수량: " + cnt + " 합계: " + sum);
            }else if(input == 2){
                System.out.println("총 비용 : " + sum);
            }else if(input == 3){
                System.out.println("반복문 종료");
                break;
            }else{
                System.out.println("옵션을 선택해주세요.");
            }
        }
    }
}

print() VS println()

print() 출력하고 다음 라인으로 넘기지 않는다.

System.out.print("안녕");
System.out.print("하세요");

//안녕하세요

println() 출력하고 다음 라인으로 넘긴다.

System.out.println("안녕");
System.out.println("하세요");

//안녕
//하세요

\n 은 엔터키 의미

System.out.print("안녕\n");
System.out.print("하세요");

//안녕
//하세요

'Java를 자바' 카테고리의 다른 글

메서드(Method)  (0) 2024.05.06
[Java] 배열 Array  (0) 2024.05.01
[Java] 형변환  (0) 2024.04.11
[Java] 스코프  (1) 2024.04.11
[Java] 반복문 | while, for  (0) 2024.04.11
Visits
Today
Yesterday
Recent Posts
Recent Comments