티스토리 뷰

IT/Java

중첩 if 문

오예봉봉 2020. 4. 25. 23:56

중첩 if 문 개념



중첩 if 문은 if 문이나 if else문의 내부에 필요 하면 if 문 또는 if else문을 또 사용하는 것입니다.
아래 예제를 봅시다.

1.class Example
2.{
3. public static void main(String[ ] args)
4. {
5. int number=110;  // 변수 number 선언 과 초기화가 이루어 집니다.
6.
7. if(number<0)  // 조건 1
8. {
9. System.out.println("0 보다 작은 숫자 입니다.");
10. }
11. else
12. {
13. if(number<100) //조건 2
14. {
15. System.out.println("0이상 100 미만의 숫자 입니다.");
16. }
17. else
18. {
19. System.out.println("100 이상의 숫자 입니다.");
20. }
21. }
22. }
23.}


위 예제는 7행에서 21행의 if else 문의 else 블록에 13행에서 20행의 if else문이 들어가 있습니다. 

즉 , if else 문이 중첩된 구조를 하고 있습니다.

7행 조건인 number < 0 이 참(true)이면 9행을 실행하고 프로그램은 종료 됩니다.

그러나 , 거짓(false)이면 11행의 else 블록으로 이동합니다.

그리고 else 블록 안에서 13행의 조건을 만족하는지 검사 합니다.

이 검사 결과가 참이면 15행을 실행하고 거짓이면 19행이 실행 됩니다.


또 다른 예제를 봅시다.


1. public class Example {

2.

3. public static void main(String[ ] args) {

4.

5. int point =  81; 

6. System.out.println("점수: " + point);

7.

8. String result;

9.

10. if(point>=90) {                        // 첫 번째 if else문

11. if(point>=95) {               // 두 번째 if else문

12. result = "A+";

13. } else {

14. result = "A";

15. }

16. } else {

17. if(point>=85) {             // 세 번째 if else문

18. result = "B+";

19. } else {

20. result = "B";

21. }

22. }

23.

24. System.out.println("학점: " + result);

25. }

26. }


위 예제는 if else문이 총 3번이 나옵니다.

11행에서 15행 , 17행에서 21행 , 두 부분에 각각 if else문이 중첩되어 있습니다.

실행 결과는 아래와 같습니다.


점수: 81

학점: B


중첩 if 문과 if..else if..else문

사실 if.. else if.. else 문장은 if else문이 중첩 되어 만들어 진 것이라 볼 수 있습니다.
위의 예제 else 블록(11~21행)에서 시작 중괄호(12행) , 종료 중괄호(21행) 는 생략이 가능합니다.
if else문장도 하나의 문장이기 때문입니다.
중괄호가 생략된 위 예제는 아래와 같습니다.

1.class Example
2.{
3. public static void main(String[ ] args)
4. {
5. int number=110;  
6.
7. if(number<0)  
8. {
9. System.out.println("0 보다 작은 숫자 입니다.");
10. }
11. else
12.         // 시작 중괄호 생략
13. if(number<100) 
14. {
15. System.out.println("0이상 100 미만의 숫자 입니다.");
16. }
17. else
18. {
19. System.out.println("100 이상의 숫자 입니다.");
20. }
21. // 종료 중괄호 생략
22. }
23.}

중괄호가 생략된 위 예제에서 13행의 if 블록을 else 옆으로 이동하면 아래와 같은 형태가 나옵니다.

1.class Example
2.{
3. public static void main(String[ ] args)
4. {
5. int number=110;  
6.
7. if(number<0)  
8. {
9. System.out.println("0 보다 작은 숫자 입니다.");
10. }
11. else if(number<100) 
12. {
13. System.out.println("0이상 100 미만의 숫자 입니다.");
14. }
15. else
16. {
17. System.out.println("100 이상의 숫자 입니다.");
18. }
19.
20.        
21. }
22.}

11행에서 else if를 발견할 수 있습니다. 
이처럼 if else문을 중첩 하여 사용하고 중괄호를 생략하면 if.. else if.. else 문이 될 수 있다는 것을 알 수 있습니다.

제어 문의 중첩

제어 문장( if문 , for문 , while문 , switch문)의 사용 목적은 프로그램 실행이 효율적으로 되게 하기 위하여 사용하는 것입니다.
따라서 효율적인 실행을 위하여 if문의 중첩 뿐만 아니라 다른 제어 문도 중첩이 가능합니다. 
예컨대 , if문 안에 for문을 사용할 수 있습니다. 또한 while 문 안에 if문 사용도 가능합니다. 


'IT > Java' 카테고리의 다른 글

반복문 소개  (0) 2020.04.28
switch case문  (0) 2020.04.26
if~else문  (0) 2020.04.23
if문(자바 조건문)  (0) 2020.04.22
삼항 연산자(조건 연산자)  (0) 2020.04.21