반응형
switch - case 문을 실행하는 도중에 위 에러가 발생했었다.
구글링을 하여 아래 링크를 찾아서 참고했다. 추후 참고해야겠다.
이상해서 stackoverflow 를 찾아보면서 코드를 다시 한번 봐보았다.
public class SwitchExam {
public static void main(String[] args) {
int month = 8;
String monthString;
switch(month) {
case 1: monthString = "Jan";
break;
case 2: monthString = "Feb";
break;
case 3: monthString = "Mar";
break;
case 4: monthString = "Apr";
break;
case 5: monthString = "May";
break;
case 6: monthString = "Jun";
break;
case 7: monthString = "Jul";
break;
case 8: monthString = "Aug";
break;
case 9: monthString = "Sep";
break;
case 10: monthString = "Oct";
break;
case 11: monthString = "Nov";
break;
case 12: monthString = "Dec";
break;
}
System.out.println(monthString);
}//end of main
}//end of class
결과 Strinf monthSTRING; 부분에 변수 선언을 안해주었기 때문에 발생한 것이다.
switch - case 문의 경우에는 문에 넣기 전에 변수 선언을 해주거나,
public class SwitchExam {
public static void main(String[] args) {
int month = 8;
String monthString = null;
switch(month) {
case 1: monthString = "Jan";
break;
case 2: monthString = "Feb";
break;
case 3: monthString = "Mar";
break;
case 4: monthString = "Apr";
break;
case 5: monthString = "May";
break;
case 6: monthString = "Jun";
break;
case 7: monthString = "Jul";
break;
case 8: monthString = "Aug";
break;
case 9: monthString = "Sep";
break;
case 10: monthString = "Oct";
break;
case 11: monthString = "Nov";
break;
case 12: monthString = "Dec";
break;
}
System.out.println(monthString);
}//end of main
}//end of class
아래와 같이 switch 문이 끝나기 전이 default 값으로 변수를 선언해주어야 한다
public class SwitchExam {
public static void main(String[] args) {
int month = 8;
String monthString;
switch(month) {
case 1: monthString = "Jan";
break;
case 2: monthString = "Feb";
break;
case 3: monthString = "Mar";
break;
case 4: monthString = "Apr";
break;
case 5: monthString = "May";
break;
case 6: monthString = "Jun";
break;
case 7: monthString = "Jul";
break;
case 8: monthString = "Aug";
break;
case 9: monthString = "Sep";
break;
case 10: monthString = "Oct";
break;
case 11: monthString = "Nov";
break;
case 12: monthString = "Dec";
break;
default monthString = "Invalid month";
break;
}
System.out.println(monthString);
}//end of main
}//end of class
그래야지 에러가 없다.
반응형