Step it up now

scanner 스캐너 본문

개인공부/JAVA

scanner 스캐너

케잉 2024. 4. 5. 11:22
public class Scanner1 {

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

        System.out.print("문자열을 입력하세요: ");
        // scanner.nextLine()가 입력한 문자열을 읽어서 str로 넣어준다
        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);

 

 


 

 

 print("\n") = println()

 

	    System.out.print("hello\n"); // print("\n") = println()
        System.out.print("hello\n");

결과

 

 

 

 


 

 

 

사용자가 입력한 문자열을 그대로 출력하는 예제를 만들어보자.
exit 라는 문자가 입력되면 프로그램을 종료한다.
프로그램은 반복해서 실행된다

 

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

 

 

 

 

첫 번째 숫자와 두 번째 숫자를 더해서 출력하는 프로그램을 개발하자.
첫 번째 숫자와 두 번째 숫자 모두 0을 입력하면 프로그램을 종료한다.
프로그램은 반복해서 실행된다.
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을 입력하면 프로그램은 종료된다.
이 때, 프로그램이 종 료될 때까지 사용자가 입력한 모든 정수의 합을 출력해야 한다
public class ScannerWhile3 {

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

        int sum = 0;

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

            if(num ==0){
                break;
            }
            sum += num; //sum = sum + num;  ->  "num" 변수의 값이 "sum" 변수에 추가
        }
        System.out.println("입력한 모든 정수의 합: " + sum);
    }
}

 

 

 

 

사용자로부터 하나의 정수 n 을 입력받고, 입력받은 정수 n 의 구구단을 출력하는 프로그램을 작성하세요.
public class ScannerEx4 {

    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 <=9 ; i++){
            System.out.println(num + " x " + i  + " = " + num * i);
        }
    }
}

 

 

 

 

⭐ 사용자로부터 두 개의 정수를 입력받고, 이 두 정수 사이의 모든 정수를 출력하는 프로그램을 작성하세요.
사용자에게 첫 번째 숫자를 입력받으세요. 변수의 이름은 num1 이어야 합니다.
사용자에게 두 번째 숫자를 입력받으세요. 변수의 이름은 num2 이어야 합니다.
만약 첫 번째 숫자 num1 이 두 번째 숫자 num2 보다 크다면, 두 숫자를 교환하세요.

참고: 교환을 위해 임시 변수 사용을 고려하세요.
num1 부터 num2 까지의 각 숫자를 출력하세요.
출력 결과에 유의하세요. 다음 예시와 같이 2,3,4,5 처럼 , 로 구분해서 출력해야 합니다


첫 번째 숫자를 입력하세요:2
두 번째 숫자를 입력하세요:5
두 숫자 사이의 모든 정수:2,3,4,5

 

public class ScannerEx5 {

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

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

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

        // num1이 num2보다 큰 경우, 두 숫자를 교환합니다
        if (num1 > num2) {
            int temp = num1;
            num1 = num2;
            num2 = temp;
        }
        // 5  6  7
        System.out.println("두 숫자 사이의 모든 정수: ");
        for (int i = num1; i <= num2; i++) {
            System.out.print(i);
            if (i != num2) {
                System.out.print(",");
            }
        }
    }
}

 

 

 

 

사용자로부터 이름과 나이를 반복해서 입력받고, 입력받은 이름과 나이를 출력하는 프로그램을 작성하세요.
사용자가 "종료"를 입력하면 프로그램이 종료되어야 합니다


이름을 입력하세요 (종료를 입력하면 종료): 자바
나이를 입력하세요: 30
입력한 이름: 자바, 나이: 30
이름을 입력하세요 (종료를 입력하면 종료): 하니
나이를 입력하세요: 20
입력한 이름: 하니, 나이: 20
이름을 입력하세요 (종료를 입력하면 종료): 종료
프로그램을 종료합니다

 

public class ScannerWhileEx1 {

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

        while (true){
            System.out.print("이름을 입력하세요 (종료를 입력하면 종료): " );
            String name = scanner.nextLine();
            if(name.equals("종료")) {
                break;
            }

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

            System.out.println("입력한 이름: " + name + ", 입력한 나이"+ age);
        }
    }
}

 

그러나,

반복시 이름을 입력할 수 없는 문제가 발생한다 

 

왜?

 


 

public class ScannerWhileEx1 {

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

        while (true){
            System.out.print("이름을 입력하세요 (종료를 입력하면 종료): " );
            String name = scanner.nextLine(); //2. 그다음 nextLine에서 \n을 읽음 -> 빈문자열 출력 후 나이 입력으로 바로 넘어감 

            if(name.equals("종료")) {
                break;
            }

            System.out.print("나이를 입력하세요 : ");
            int age = scanner.nextInt(); // 1. 나이+ \n  입력됨 - nextInt는 int값만 가져가기에 \n가 남음
            scanner.nextLine(); // 3. 써줘야 남은 "\"를 읽어들인다 

            System.out.println("입력한 이름: " + name + ", 입력한 나이"+ age);

        }
    }
}

 

 

 

이름 입력이 정상작동 된다

 

 

 

 

 

 

⭐사용자로부터 여러 개의 숫자를 입력 받고, 그 숫자들의 합계와 평균을 계산하는 프로그램을 작성하세요.
사용자는 숫자를 입력하고, 마지막에는 -1을 입력하여 숫자 입력을 종료한다고 가정합니다.
모든 숫자의 입력이 끝난 후에는, 숫자들의 합계 sum 과 평균 average 를 출력하세요.
평균은 소수점 아 래까지 계산해야 합니다

 

public class ScannerWhileEx3 {

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

		//★
        int sum = 0;
        int count = 0;
        int num = 0;

        System.out.print("숫자를 입력하세요. 입력을 중단하려면 -1을 입력하세요: ");

		// while문 첫번째 방법
       /* while(true) {
            num = scanner.nextInt();

                if(num==-1) {
                    break;
                }
                //★
                sum += num; //입력한 숫자들의 합계
                count++; //합한 횟수
        }*/
        
         
         // while문 두번째 방법 
         while((num = scanner.nextInt()) != -1){ //입력된 숫자가 -1이 아니면 (참) 아래 수식 실행
            sum +=num;
            count++;
        }
        double avg = (double) sum/count;
        System.out.println("입력한 숫자들의 합계: " + sum);
        System.out.println("입력한 숫자들의 평균: " + avg );
    }
}

 

 

 

 

 

 


⭐사용자로부터 상품 정보(상품명, 가격, 수량)를 입력받고, 이들의 총 가격을 출력하는 프로그램을 작성하세요.

사용자는 여러 상품을 추가하고 결제할 수 있으며, 프로그램을 언제든지 종료할 수 있습니다.
사용자에게 다음 세 가지 옵션을 제공해야 합니다: 1: 상품 입력, 2: 결제, 3: 프로그램 종료.
옵션은 정수로 입력받으며, 옵션을 저장하는 변수의 이름은 option 이어야 합니다.

상품 입력 옵션을 선택하면, 사용자에게 상품명과 가격, 수량을 입력받으세요.

결제 옵션을 선택하면, 총 비용을 출력하고 총 비용을 0 으로 초기화하세요. (사용자가 총 비용을 확인하고, 결제를 완료했다고 가정합니다. 따라서 다음 사용자를 위해 총 비용을 다시 0 으로 초기화 해야합니다.)

프로그램 종료 옵션을 선택하면, "프로그램을 종료합니다."라는 메시지를 출력하고 프로그램을 종료하세요.

위의 세 가지 옵션 외에 다른 값을 입력하면, "올바른 옵션을 선택해주세요."라는 메시지를 출력하세요
public class ScannerWhileEx4 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int totalCost = 0; //상품 누적 후 결제시 출력

        while(true) {
            System.out.println("1: 상품입력,  2: 결제,  3: 프로그램 종료");
            int option = scanner.nextInt();

            if(option == 1){
             scanner.nextLine(); //이전에 입력된 \n 제거
             
                System.out.print("상품을 입력하세요: ");
                String product = scanner.nextLine();
                
                System.out.print("상품의 가격을 입력하세요: ");
                int price = scanner.nextInt();
                
                System.out.print("구매수량을 입력하세요: ");
                int quantity = scanner.nextInt();

                totalCost += price * quantity; //누적값
                System.out.println("상품명: "+ product +", 가격: "+price + ", 수량: "+quantity + " 합계: "+ price * quantity);

            } else if (option == 2) {
                System.out.println("총 비용: " + totalCost);
                
                totalCost = 0; //총 비용 초기화
            
            } else if (option == 3) {
                System.out.println("프로그램을 종료합니다");
                break;
            
            }else{
                System.out.println("올바른 옵션을 선택해주세요");
            }
        }
    }
}

 

 

'개인공부 > JAVA' 카테고리의 다른 글

기본형 vs 참조형 - 메서드 호출시  (0) 2024.05.16
배열 ++ 문제 다시풀기  (0) 2024.04.17
반복문  (0) 2024.04.03
형 변환 casting  (0) 2024.04.01
스코프  (0) 2024.03.31