JAVA/개념

JAVA 제어문 : 조건문(if) , 선택문(switch)

tigre 2021. 12. 31. 22:54
728x90
반응형

제어문

제어문 : 코드의 실행 흐름(순서)을 제어하는 구문

↔ 순차문 : 코드가 작성된 순서대로 실행되는 문장


조건문

조건에 따라 코드의 실행 흐름을 제어하는 구문

If문

조건식의 진리값이 참인 경우 코드를 실행

형식) if(조건식) 처리할 문장
조건식에는 변수, 수식(관계, 논리연산자) 등이 들어갈 수 있음

사용례

public class IfTest {
    public static void main(String[] args) {
        int su = 30;
        if (su % 2 == 0) {
            System.out.println(su+"은(는) 짝수입니다.");
        }
        if (su % 2 == 1) {
            System.out.println(su+"은(는) 홀수입니다.");
        }
        // 30은(는) 짝수입니다.
        /* 30은 2로 나눈 나머지가 0이기 때문에 위의 if문은 실행되고
            아래의 if문은 실행되지 않음 */
    }
}

※ 코드 블럭 처리 : 실행할 코드가 둘 이상인 경우에 {}중괄호로 코드들을 묶어줌


If-Else 문

조건식의 진리값이 참인 경우에는 if 다음의 코드를 실행하고
진리값이 거짓인 경우에는 else다음의 코드를 실행

사용례

public class IfTest {
    public static void main(String[] args) {
        int su = 30;

        if (su % 2 == 1) {
            System.out.println(su+"은(는) 홀수입니다.");
        } else  {
            System.out.println(su+"은(는) 짝수입니다.");
        }
         // 30은(는) 짝수입니다.
         /*
         su를 2로 나눈 나머지가 1인 경우에 if다음의 코드를 실행하고
         나머지가 1이 아닌 경우에 else다음의 코드를 실행하기 때문에
         else다음의 코드가 실행됨
         */

         // 삼항연산자, if-else문과 유사함
         String su2 = (su % 2 == 0) ? "짝수" : "홀수";
        System.out.println("입력받은 su의 값은 "+su2+"입니다.");
         // 입력받은 su의 값은 짝수입니다.
    }
}

중첩 If문

if문 내부에 또 다른 if문이 나오는 구문

public class IfTest2 {
    public static void main(String[] args) {
        // 1~100까지의 수를 입력받는다는 조건 하에 홀수, 짝수 판별
        // 1~100 범위에 들지 않는 숫자 → "숫자는 1~100 안에서 입력해 주세요!!"
        int su = 111;
        if ((1 <= su) && (su <= 100)) {
            if (su % 2 == 1) {
                System.out.println(su + "은(는) 홀수입니다.");
            } else {
                System.out.println(su + "은(는) 짝수입니다.");
            }
        } else {
            System.out.println("숫자는 1~100 안에서 입력해 주세요!!");
             // 숫자는 1~100 안에서 입력해 주세요!!
        }
    }
}

선택문

다중 if문 대신 사용, 조건문의 일종으로 볼 수 있음

if문을 여러 개 사용하면 실행 속도가 느려지기 때문에 사용

switch함수의 매개변수에 들어오는 값에 따라 코드를 실행

형식

switch(조건식){
     case 값1:
     실행 코드
     break;
     case 값2:
     실행 코드
     break;
     case 값3:
     실행 코드
     break;
     default: case에 해당하는 값이 없을 때 실행할 코드 
      break;        
}
/*
case 값의 개수는 임의로 설정 가능
break : 코드가 실행되다가 break를 만나면,
바로 실행을 중지하고 해당 loop에서 빠져나옴 
*/

※ Java7부터는 swtich~case문의 case 값에 정수 값뿐만 아니라 문자열도 사용 가능

사용례

public class SwitchTest {
    public static void main(String[] args) {
        int su = 33;

        switch (su % 2) {
        case 0:
            System.out.println(su + "은(는) 짝수입니다.");
            break;
        case 1:
            System.out.println(su + "은(는) 홀수입니다.");
            break;
        }
         // 33은(는) 홀수입니다.
         /* su%2의 값이 1이기 때문에 case1의 코드가 실행되고
         break로 빠져나감, 가장 마지막 case에는 break 생략 가능 */
    }
}

Switch~Case 선택문

case에 해당하는 값에 따라 코드의 실행을 제어하는 구문

사용례_case 병렬 사용

public class SwitchTest2 {
    public static void main(String[] args) {
        int su=15;

        //1~10 짝수 홀수 판별하기
        switch(su) {
        case 2: case 4:
        case 6: case 8:
        case 10:
            System.out.println("su는 짝수입니다.");
            break;
        case 1: case 3: case 5: case 7: case 9:
            System.out.println("su는 홀수입니다.");
            break;
         default : System.out.println("숫자는 1~10 범위 내에서 선택!!");
        }
         // 숫자는 1~10 범위 내에서 선택!!
    }
}
// 여러 가지 케이스에서 동일한 코드를 실행하는 경우 case를 나열할 수 있음

※ default는 if-else 문의 마지막 else 역할을 함

사용례_case 값에 문자열 사용

public class SwitchTest3 {
    public static void main(String[] args) {
        String day="10"; // 문자열 상수

        // case에 문자열 값 사용하기
        switch (day) {
        case "10":
            System.out.println("10을 선택");
            break;
        case "20": case "30": case "40": case "50": case "60":
            System.out.println("선택한 문자열은 20~60중 하나 입니다");
            }
         // 10을 선택
    }
}

※ case의 값으로 문자도 올 수 있음


제어문에서 가장 자주 쓰이고 중요하게 여겨지는 조건문과
다중 if문 대신 사용할 수 있는 switch문에 대해 알아보았습니다.
if문은 코드 작성시 굉장히 많이 쓰이기 때문에 사용 방법을 숙지하고 있으면 많은 도움이 될 것입니다.

728x90
반응형