JAVA/자바의 정석

[자바의 정석 - 기초편] 4. (1) 조건문 ( if문 / switch문 )

서영22 2023. 11. 24. 23:01

조건문 : 조건을 만족할때만 {} 를 수행 (0~1번)   Ex)  if문 / switch문

반복문 : 조건을 만족하는 동안 {} 를 수행 (0~n번)  Ex)  for문 / while문

 

 

 if문 

결과값 : true or false

조건식이 참일 때 {} 수행

if (조건식) {
         // 조건식이 참일 때 수행 될 문장들
}

 

조건식 조건식 참일 조건
str.equals("yes") 문자열 str의 내용이 "yes"일 때 (대소문자 구분)
str.equalsIgnoreCase("yes") 문자열 str의 내용이 "yes"일 때 (대소문자 구분 X)

 

 

 

 if - else문 

조건식이 참일 때와 거짓일 때로 나눠서 처리

if (조건식) {
         // 조건식이 참일 때 수행 될 문장들
} else {
         // 조건식이 거짓일 때 수행 될 문장들
}

 

 

 

 if - else if문 

여러개의 조건식을 포함한 조건식

if (조건식1) {
         // 조건식1이 참일 때 수행 될 문장들
} else if (조건식 2) {
         // 조건식2가 참일 때 수행 될 문장들
} else if (조건식 3) {
        // 조건식3이 참일 때 수행 될 문장들
} else { 
// else 블럭 생략 가능
        // 어느 조건식도 만족하지 않을 때 수행될 문장들

 

 

 

 중첩 if문 

if문 안의 if문

if (조건식1) {
         // 조건식1이 참일 때 수행 될 문장들
         if (조건식 2) {
                          // 조건식1이 참,  2가 참일 때 수행 될 문장들
         } else {
                          // 조건식1이 참, 2가 거짓일 때 수행 될 문장들

         } 
} else {  

        // 조건식1이 거짓일 때 수행 될 문장들

 

Ex)

 

 

 

 switch문 

결과값 : 정수 or 문자열

처리해야하는 경우의 수가 많을 때 유용

 

1. 조건식 계산

2. 조건식의 결과와 일치하는 case문으로 이동

3. 이후의 문장들 수행

4. break문이나 switch문의 끝을 만나면 switch문 전체를 빠져나감

 

switch (조건식) {
           case 값1 :
                       // 조건식의 결과가 값1과 같을 경우 수행될 문장들
                       // .....
                       break;
           case 값2 :
                       // 조건식의 결과가 값2과 같을 경우 수행될 문장들
                       // .....
                       break;        // 만약 case2 진행중일 경우, switch문 벗어남
           // ......
           default :
                        // 조건식의 결과와 일치하는 case문이 없을 때 수행될 문장들
                        // .....
}

 

 

 switch문의 제약 조건 

1. switch문의 조건식 결과는 정수 or 문자열
2. case문의 값은 정수 상수(문자 포함), 문자열만 가능하며, 중복 X

               final int ONE = 1;
               switch (조건식) {
                                case '1' :          // OK. 문자 리터럴 (= 정수 49)
                                case ONE :     // OK. 정수 상수
                                case "YES" :   // OK. 문자열 리터럴
                                case num :      // 에러. 변수는 불가
                                case 1.0 :        // 에러. 실수는 불가