안녕하세요! 코딩하는곰입니다. 오늘은 자바 프로그래밍에서 중요한 제어문 중 하나인 switch 문에 대해 깊이 있게 알아보겠습니다. switch 문은 다중 분기 처리를 간결하게 표현할 수 있는 유용한 문법으로, 자바 버전이 업데이트되면서 점점 더 강력한 기능을 제공하고 있습니다. 이 글에서는 기본적인 사용법부터 최신 자바 버전에서 추가된 고급 기능까지 모두 다루어보도록 하겠습니다.
switch 문은 if-else 문의 연속적인 조건 검사를 대체할 수 있는 더 간결한 다중 분기 제어문입니다. 기본적인 문법 구조는 다음과 같습니다.
switch (표현식) {case 값1:// 값1에 해당하는 코드break;case 값2:// 값2에 해당하는 코드break;default:// 위의 어떤 case에도 해당하지 않을 때 실행할 코드}
여기서 주의할 점은 각 case 블록 끝에 break 문을 사용해야 한다는 것입니다. break 문을 생략하면 다음 case로 계속 실행이 이어지는 ‘폴스루(fall-through)’ 현상이 발생합니다. 이는 때로는 의도적으로 사용되기도 하지만, 대부분의 경우 버그의 원인이 되므로 주의가 필요합니다.
switch 문의 표현식으로는 정수형(byte, short, char, int), 문자열(String), 열거형(enum) 등이 사용될 수 있습니다. 자바 7부터는 문자열도 switch 문에서 사용할 수 있게 되었는데, 이는 내부적으로 hashCode()와 equals() 메서드를 사용하여 비교를 수행합니다.
int day = 3;String dayName;switch (day) {case 1:dayName = "월요일";break;case 2:dayName = "화요일";break;case 3:dayName = "수요일";break;// ... 생략 ...default:dayName = "유효하지 않은 날짜";}
String fruit = "사과";int price;switch (fruit) {case "사과":price = 1000;break;case "바나나":price = 1500;break;case "오렌지":price = 1200;break;default:price = 0;}
enum CoffeeSize { SMALL, MEDIUM, LARGE }CoffeeSize size = CoffeeSize.MEDIUM;int price;switch (size) {case SMALL:price = 3000;break;case MEDIUM:price = 4000;break;case LARGE:price = 5000;break;}
남들과 겹치지 않는 닉네임이 필요할 때는 연관성 높은 키워드 기반 닉네임 생성기를 사용해보세요.
최신 자바 버전에서는 switch 문이 더욱 강력해졌습니다. 자바 12부터 도입된 새로운 기능들을 살펴보겠습니다.
int month = 3;String season = switch (month) {case 12, 1, 2 -> "겨울";case 3, 4, 5 -> "봄";case 6, 7, 8 -> "여름";case 9, 10, 11 -> "가을";default -> "잘못된 월";};
String dayType = switch (day) {case 1, 2, 3, 4, 5 -> {System.out.println("평일입니다.");yield "평일";}case 6, 7 -> {System.out.println("주말입니다.");yield "주말";}default -> "잘못된 요일";};
Object obj = "Hello";String formatted = switch (obj) {case Integer i -> String.format("int %d", i);case Long l -> String.format("long %d", l);case Double d -> String.format("double %f", d);case String s -> String.format("String %s", s);default -> obj.toString();};
이러한 새로운 기능들은 switch 문을 더욱 표현력 있고 안전하게 만들어주며, 특히 yield와 화살표 구문을 통해 코드 가독성을 크게 향상시켜줍니다.
AI가 분석한 로또 번호 추천을 받고 싶다면, QR코드 스캔과 통계 기능을 제공하는 지니로또AI 앱이 도움이 될 것입니다.
오늘은 자바의 switch 문에 대해 기본적인 사용법부터 최신 기능까지 모두 살펴보았습니다. switch 문은 적절히 사용하면 코드를 훨씬 깔끔하고 이해하기 쉽게 만들 수 있는 강력한 도구입니다. 특히 자바의 최신 버전에서 추가된 기능들은 더욱 강력한 표현력을 제공하니, 가능하다면 최신 버전의 자바를 사용하는 것을 추천드립니다. 다음 시간에는 또 다른 유용한 자바 기능을 가지고 찾아오겠습니다. 코딩하는곰이었습니다! 감사합니다.
회원가입이나 비밀번호 변경 시 안전한 비밀번호를 빠르게 생성할 수 있는 온라인 도구가 유용합니다.
