놀이동산 입장권 계산 프로그램

- 수행 목적 : Scanner의 입력함수와 다중 조건문을 통한 입장권 계산 로직 작성

- 간략 소개

: 놀이동산의 입장권은 나이와 기타 우대사항에 따라 입장료가 달라집니다.

: 문제에서 주어진 조건에 맞는 입장료를 구하는 프로그램을 작성해 보세요.

 

※ 필수 준수사항
1. 놀이공원 입장료를 구하는 조건에 맞게 로직 작성
2. 입력내용은 나이, 입장시간, 국가유공자 여부, 복지카드 여부 순으로 입력

[놀이공원 입장료 할인 종류 = 일반 할인, 특별 할인]
1. 3세 미만이면 무료 입장
2. 복지카드와 국가유공자의 경우 일반 할인 적용
3. 13세 미만이면 특별 할인 적용
4. 17시 이후에 입장하면 특별 할인 적용
기본 입장료 : 10,000원 / 특별 할인의 경우 : 4,000원 / 일반 할인의 경우 : 8,000원

 


Scanner를 통해 char형 데이터 입력받기

char형의 경우 Scanner을 통해 입력 받아 변수에 저장하고 싶었으나, next 관련 함수에서 char 형 입력을 받아주는 함수를 찾지 못했다.

아래와 같이 next를 통해 받은 String에서 charAt을 통해 char 값을 입력 받았다.

 

             Scanner sc = new Scanner(System.in);
             char country = sc.next().charAt(0);

작성 코드

// 놀이동산 입장권 계산 프로그램

import java.util.Scanner;

public class AmusementPark {
    public static void main(String[] args) {
        System.out.println("[입장권 계산]");
        Scanner sc = new Scanner(System.in);

        int price;

        System.out.print("나이를 입력해 주세요.(숫자): ");
        int age = sc.nextInt();
        System.out.print("입장 시간을 입력해 주세요.(숫자 입력): ");
        int time = sc.nextInt();
        System.out.print("국가유공자 여부를 입력해 주세요.(y/n): ");
        char country = sc.next().charAt(0);
        System.out.print("복지카드 여부를 입력해 주세요.(y/n): ");
        char card = sc.next().charAt(0);

        if (age<3) {
            price = 0;
        } else if (age < 13 || time >= 17) {
            price = 4000;
        } else if (country == 'y' || card == 'y') {
            price = 8000;
        } else {
            price = 10000;
        }

        System.out.println(String.format("입장료 : %d", price));
        sc.close();

    }
}

https://gist.github.com/coha96/dbf94851712debd2c8b0fca636a843e6