JAVA/조건문(if, switch)과 반복문(for, while)

[JAVA] 중첩 if문

prize1209 2021. 6. 9. 17:08

중첩 if문

if 문의 블럭 내에 또 다른 if문을 포함시키는 것이 가능하다. 중첩 횟수에는 제한이 없다.

 

내부 if문은 안쪽 들여쓰기를 해서 명확히 구분하자.

중첩 if문에서는 괄호{}의 생략에 조심해야한다. 

else블럭이 바깥 if문에 속한 것처럼 보이지만 괄호가 생략되었을 때 가까운if문으로 속한 것으로 간주되기 때문에

실제로는 오른쪽처럼 안쪽 if문의 else블럭이 되어버린다.

 

 

예5)

중첩 if문 - 성적에 따른 학점 출력 (+,-포함)

 

import java.util.*;

public class FlowEx5 {
	public static void main(String[] args) {
		int score = '0'; // 성적 초기화
		char grade = ' ', opt = '0'; // 학점 +-초기화

		System.out.println("점수를 입력하세요");
		Scanner sc = new Scanner(System.in);
		score = sc.nextInt();

		if (score >= 90) {
			grade = 'A';
			if (score > 98) {
				opt = '+';
			} else if (score < 94) {
				opt = '-';
			}
		} else if (score >= 80) {
			grade = 'B';
			if (score > 88) {
				opt = '+';
			} else if (score < 84) {
				opt = '-';
			}
		} else {
			grade = 'C';
		}

		System.out.printf("점수는 %d, 학점은 %c%c 입니다", score, grade, opt);
	}
}