Ch4-5~8. 중첩 if문
0. 목차
Chapter4. 조건문과 반복문
Ch4 - 5. if - else if문
Ch4 - 6. if - else if문 예제
Ch4 - 7. 중첩 if문
Ch4 - 8. 중첩 if문 예제
Ch4 - 5. if - else if문
▶ if - else if문이란?
▷ 여러 개 중의 하나 : 여러 개의 조건식을 포함한 조건식
if (조건식1) {
// 조건식1 = true일 때, 이 구역((조건식1) { })을 실행
} else if (조건식2) {
// 조건식2 = true일 때, 이 구역((조건식1) { })을 실행
} else if (조건식3) {
// 조건식3 = true일 때, 이 구역((조건식1) { })을 실행
} else {
// 조건식1, 2, 3 모두 false일 때, 이 구역(else { })을 실행
}
Ch4 - 6. if - else if문 예제
▶ 70점은 몇 학점?
int score = 70; // score = 점수 저장
char grade = ' '; // grade = 학점 저장
if (score >= 90) { // ① 70 >= 90 → false
grade = 'A';
} else if (score >= 80) { // ② 70 >= 80 → false
grade = 'B';
} else if (score >= 70) { // ③ 70 >= 70 → true
grade = 'C'; // ④ grade = C
} else {
grade = 'D';
} // ⑤ 조건 - 만족 - 실행 - 조건문 빠져나옴
System.out.println(grade);
// console
C
if문 : 딱 하나의 문장만 실행하고 빠져나옴
▷ else if (score >= 80)
= 80 ≤ score < 90
??
- score가 90보다 작아야 하는 게 조건에 입력되지 않음
- 왜?
- if문 :
if (score >= 90)
에서 이미 90보다 작은 애들 검증 끝 - 그래서
else if (score >= 80)
으로 온 애들은 애초에 다 90보다 작음 - 그래서 검증이 필요 없음
▷ 코드를 줄이기
- else문 없애기
int score = 50; char grade = 'D'; // 초기값으로 'D'를 줌 → else문은 없애기 if (score >= 90) { // ① 50 >= 90 → false grade = 'A'; } else if (score >= 80) { // ② 50 >= 80 → false grade = 'B'; } else if (score >= 70) { // ③ 50 >= 70 → false grade = 'C'; } // ④ if문에 만족하는 조건 없음 → 그냥 빠져나옴 → grade는 초기값 그대로 'D' System.out.println(grade); // console D
Ch4 - 7. 중첩 if문
▶ 중첩 if문이란?
▷ if문 안의 if
▷ 중첩횟수는 제약이 없다 보면 됨
- if문 안에 if문은 1000번 정도 들어감
- 보통 if문 3~4번 정도 밖에 쓰지 않음
if (조건식1) { // 조건식1 = true일 때, 이 구역((조건식1) { })을 실행 if (조건식2) { // 조건식1, 2 = 둘 다 true일 때, 이 구역(중첩 if(조건식2) { })을 실행 } else { // ① 조건식1 = true ② 조건식2 = flase일 때, 이 구역(중첩 if의 else { })을 실행 } } else { // 조건식1 = false일 때, 이 구역(else { })을 실행 }
▷ 괄호 생략시 주의!
- 괄호 생략 : 들여쓰기로 구분가능?? → 구분 안됨
if (num >= 0) // ① if문 if (num != 0) // ② 중첩 if문 sign = '+'; else // ① if문의 else?? OR ② 중첩 if문의 else?? sign = '-';
- 괄호
if (num >= 0) { // ① if문 if (num != 0) { // ② 중첩 if문 sign = '+'; } else { // ② 중첩 if문의 else sign = '-'; } }
Ch4 - 8. 중첩 if문 예제
▶ 70점은 몇 학점? + 학점의 + - 추가하기
▷ 97 ~ 100 = A+
▷ 94 ~ 96 = A
▷ 90 ~ 93 = A-
▷ 87 ~ 89 = B+
▷ 84 ~ 86 = B
▷ 80 ~ 83 = B-
▷ 70 ~ 79 = C
char grade = ' ', sign = ' ';
System.out.printf("점수입력 > ");
Scanner scanner = new Scanner(System.in);
int score = scanner.nextInt();
if (score >= 90) {
grade = 'A';
if (score >= 97) {
sign = '+';
} else if (score >= 93) {
sign = '-';
}
} else if (score >= 80) {
grade = 'B';
if (score >= 87) {
sign = '+';
} else if (score >= 83) {
sign = '-';
}
} else if (score >= 70) {
grade = 'C';
}
System.out.printf("점수 : %d점\n학점 : %c%c", score, grade, sign);
// console
점수입력 > 97
점수 : 97점
학점 : A+