[Java] Switch-case 내부 return
Switch-case 구문에서 분기점에서 바로 return 할 때 break; 추가 여부(부)
자바switch-case
문에서는 각 case 끝에break;
를 꼭 넣어야 한다. 그래야 해당 case 실행 후switch
문을 빠져나온다.break;
가 없으면 다음 case들도 연속해서 실행되는 fall-through 현상이 발생해서 원하지 않는 동작이 생길 수 있다.
그러나
return
이나throw
가 있으면break
없어도 괜찮다.- 그 외에는 반드시
break
넣어줘야 한다.
break가 필요없는 예
switch (op) {
case '+':
return num1 + num2; // return이라 break 없어도 되지만,
// 만약 return 없으면 break 꼭 필요
case '-':
return num1 - num2;
case '*':
return num1 * num2;
default:
throw new IllegalArgumentException("지원하지 않는 연산자입니다: " + op);
}
위처럼 return
이 있으면 자동으로 switch 종료돼서 break
가 없어도 돼.
하지만 return
이 없고 case
내에서 작업만 한다면 반드시 break;
를 써줘야 해.
break가 필요한 예
switch (op) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
default:
throw new IllegalArgumentException("지원하지 않는 연산자입니다: " + op);
}
이렇게 break;
를 넣어야 case마다 독립적으로 실행된다.
출처: chatGPT