국비교육/국비교육 복습

Day03_condition_Test09 : else if가 포함된 조건문 + 조건의 범위 (★)

Luver Duck 2022. 7. 31. 19:11

(Q) 지하철 요금은 다음과 같습니다.

- 노인(65세~) : 무료
- 성인(20~64세) : 1250원
- 청소년(14~19세) : 720원
- 어린이(8~13세) : 450원
- 영유아(~7세) : 무료
출생년도 4자리가 주어졌을 때 지하철 요금을 계산하여 출력하는 프로그램 구현

 

package day03;

import java.lang.*;

public class Day03_condition_Test09 {

	public static void main(String[] args) {

		int now = 2022, birth = 1985;
		int age = now - birth + 1;

		if(age <= 7 || age >= 65) {
			System.out.println("무료");
		}

		else if(age <= 13) {
			System.out.println("450원");
		}

		else if(age <= 19) {
			System.out.println("720원");
		}

		else {
			System.out.println("1250원");
		}

	}

}

 

1) 다중 조건문에서 else if는 이전 조건의 범위를 제외한 범위에서 조건을 만족하는지 검사한다

 예를 들어 if(age <= 7 || age >= 65) {}에서 조건문을 만족하지 않는다면

   else if로 넘어가기 전 조건 검사 범위는 age > 7 & age < 65로 한정된다

   (or 연산자로 연결된 조건을 부정하면 and 연산으로 바뀌는 조건의  부정과 같은 논리)

   else if(age <= 13) {}에서 하한을 입력하지 않아도 7 이상으로 범위를 한정하는 이유이다

 

 

 

** 7세 이하와 65세 이하일 때 출력 문구가 "무료"이며 나머지는 숫자인데 System.out을 한번에 할 수 있는 방법??