국비교육/국비교육 복습
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을 한번에 할 수 있는 방법??