PersesTitan(페르) 기술블로그

[Shell] case문 사용하기 (Java switch-case문 비교) 본문

Language/Shell

[Shell] case문 사용하기 (Java switch-case문 비교)

PersesTitan(페르) 2023. 3. 9. 10:38

shell에서 사용하는 switch-case문을 java의 case문과 비교하여 보겠습니다.

기본 사용법

해당 값과 일치하는 값이 존재한다면 정의된 동작을 실행 시킬 수 있습니다.

shell

case $변수명 in
    0)
        echo "0 출력"
        ;;
    1)
        echo "1 출력"
        ;;
esac

java

타입 1

switch (변수명) {
    case 0:
        System.out.println("0 출력");
        break;
    case 1:
        System.out.println("1 출력");
        break;
}

타입2

switch (변수명) {
    case 0 -> System.out.println("0 출력");
    case 1 -> System.out.println("1 출력");
}

default 사용하기

shell에서는 어느것에도 포함되지 않는다면 *를 사용하여 어느 것도 포함하지 않을때의 동작을 구현할 수 있습니다.

shell

case $변수명 in
    0)
        echo "0 출력"
        ;;
    1)
        echo "1 출력"
        ;;
    *)
        echo "나머지"
        ;;
esac

java

타입 1

switch (변수명) {
    case 0:
        System.out.println("0 출력");
        break;
    case 1:
        System.out.println("1 출력");
        break;
    default:
        System.out.println("나머지");
        break;
}

타입2

switch (변수명) {
    case 0 -> System.out.println("0 출력");
    case 1 -> System.out.println("1 출력");
    default -> System.out.println("나머지");
}

조건이 여러개 일때

shell에서도 같은 동작을 하는 조건 값이 여려개일때 사용할 수 있습니다.

shell

case $변수명 in
    0|1)
        echo "0 또는 1 출력"
        ;;
    2|3)
        echo "2 또는 3 출력"
        ;;
    *)
        echo "나머지"
        ;;
esac

java

타입 1

switch (변수명) {
    case 0:
    case 1:
        System.out.println("0 또는 1 출력");
        break;
    case 2:
    case 3:
        System.out.println("2 또는 3 출력");
        break;
    default:
        System.out.println("나머지");
        break;
}

타입2

switch (변수명) {
    case 0, 1 -> System.out.println("0 또는 1 출력");
    case 2, 3 -> System.out.println("2 또는 3 출력");
    default -> System.out.println("나머지");
}