메서드 작성 과정에서 발생한 에러 노트
🙏 내가 원했던 결과
숫자 3,4,5 입력 시 "봄" 반환,
숫자 6,7,8 입력 시 "여름" 반환,
...
int 타입의 인자(월)을 입력받아 문자열(계절)로 반환하는 메서드를 작성했다. switch문을 메서드 안에 사용해보고 싶어서 if가 아닌 switch문을 썼는데...

⛔ Unreachable code 에러 발생
원래 switch문을 사용하던 대로 실행을 멈추고 싶은 부분에 break문을 사용했는데 해당 줄에서 Unreachable code라는 에러가 발생했다.
이 에러는 구조상 도달할 수 없는 코드가 있을 때 발생하는데, return이 실행된 후 이미 해당 메서드는 값을 반환하고 종료된 상황이기 때문에 break문을 쓸 필요가 없는 것이었다..
return하지 않는 메서드에서만 break문으로 빠져나오면 되는 듯
📗 메서드 내에서 return이 실행되면
뒤에 코드가 더 있더라도 실행하지 않고 값을 반환한 뒤 종료한다.

✅ 해결 방법
break문을 지워 주니 깔끔하게 돌아간다.
숫자를 입력해서 문자열을 반환하는 메서드를 작성해 보고 싶었는데 성공했다^_^
📄 전체 코드
package chapter06;
import java.util.Scanner;
public class ch06_5 {
static void hello(String name) {
System.out.printf("안녕하세요, %s님!%n",name);
}
static int age(int year) {
return 2023-year;
}
static String season(int month) {
switch(month) {
case 3:case 4:case 5:
return "봄";
case 6:case 7:case 8:
return "여름";
case 9:case 10:case 11:
return "가을";
case 12:case 1:case 2:
return "겨울";
default:
return "";
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Scanner ss = new Scanner(System.in);
System.out.println("이름을 입력하세요.");
String name = ss.nextLine();
hello(name);
System.out.println("출생년도를 입력하세요. (ex.1996)");
int year = sc.nextInt();
int age = age(year);
System.out.println("태어난 달을 입력하세요.");
int month = sc.nextInt();
String season = "";
season = season(month);
System.out.printf("%s님의 나이는 %d세이고, 태어난 계절은 %s입니다.",name,age,season);
}
}