shell에서 사용하는 switch-case문을 java의 case문과 비교하여 보겠습니다.
해당 값과 일치하는 값이 존재한다면 정의된 동작을 실행 시킬 수 있습니다.
case $변수명 in
0)
echo "0 출력"
;;
1)
echo "1 출력"
;;
esac
타입 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 출력");
}
shell에서는 어느것에도 포함되지 않는다면 *
를 사용하여 어느 것도 포함하지 않을때의 동작을 구현할 수 있습니다.
case $변수명 in
0)
echo "0 출력"
;;
1)
echo "1 출력"
;;
*)
echo "나머지"
;;
esac
타입 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에서도 같은 동작을 하는 조건 값이 여려개일때 사용할 수 있습니다.
case $변수명 in
0|1)
echo "0 또는 1 출력"
;;
2|3)
echo "2 또는 3 출력"
;;
*)
echo "나머지"
;;
esac
타입 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("나머지");
}