Java 프로그래밍에서 switch-case 문은 변수 값을 기반으로 여러 코드 블록 중 하나의 코드 블록을 실행하는 데 사용되는 제어 구조입니다. 여러 개의 if-else 문을 사용하는 것보다 더 효율적이고 읽기 쉽습니다. switch-case 문을 사용할 때 이해해야 할 중요한 개념 중 하나는 "fall-through"입니다.
폴스루(Fall-through)는 break 문을 만나지 않고 코드 실행이 한 케이스에서 다음 케이스로 계속될 때 발생합니다. 기본적으로 일치하는 Case 블록이 실행된 후 제어 흐름은 break 문을 만나거나 switch 문이 끝날 때까지 후속 Case 블록으로 이동합니다.
다음은 Java에서 switch-case 문의 기본 구문입니다.
switch (expression) { case value1: // code block break; case value2: // code block break; default: // default code block }
폴스루 작동 방식을 이해하기 위해 예를 살펴보겠습니다.
int day = 2; switch (day) { case 1: System.out.println("Monday"); case 2: System.out.println("Tuesday"); case 3: System.out.println("Wednesday"); default: System.out.println("Other day"); }
이 예에서 출력은 다음과 같습니다.
Tuesday Wednesday Other day
day가 2와 같으면 사례 2 블록이 실행되어 "Tuesday"가 인쇄됩니다. Case 2 이후에는 break 문이 없기 때문에 Case 3까지 실행이 계속된 다음 기본 Case로 실행되어 각각 "Wednesday"와 "Other day"가 인쇄됩니다. 이는 폴스루 동작의 전형적인 예입니다.
폴스루(fall-through)를 방지하려면 각 사례를 break 문으로 종료해야 합니다.
int day = 2; switch (day) { case 1: System.out.println("Monday"); break; case 2: System.out.println("Tuesday"); break; case 3: System.out.println("Wednesday"); break; default: System.out.println("Other day"); break; }
이제 출력은 다음과 같습니다.
Tuesday
때때로 동일한 코드 블록으로 여러 사례를 실행하기 위해 의도적으로 fall-through를 사용할 수 있습니다.
int day = 2; switch (day) { case 1: case 2: case 3: case 4: case 5: System.out.println("It's a weekday"); break; case 6: case 7: System.out.println("It's a weekend"); break; default: System.out.println("Invalid day"); }
이 예에서 요일 값 1부터 5까지는 모두 "평일입니다"가 인쇄됩니다.
Switch-case 문의 폴스루를 이해하는 것은 명확하고 버그 없는 Java 코드를 작성하는 데 중요합니다. 폴스루는 특정 시나리오에서 유용할 수 있지만 일반적으로 의도하지 않은 동작을 방지하기 위해 break 문을 사용하는 것이 좋습니다.
참고: Java와 달리 Ruby의 경우 구성은 폴스루 동작을 나타내지 않습니다. 각 when 절은 독립적이며 명시적인 지침 없이는 후속 when 절이 자동으로 계속 실행되지 않습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3