Error code 모음/5. JAVA, Spring errors

[Java Error] : a variable might not have been initialized

쟈누이 2020. 7. 8. 15:04
반응형

switch - case  문을 실행하는 도중에 위 에러가 발생했었다.

 

구글링을 하여 아래 링크를 찾아서 참고했다. 추후 참고해야겠다.

https://stackoverflow.com/questions/28820579/why-do-i-get-a-variable-might-not-have-been-initialized-compiler-error-in-my-s

 

Why do I get a "variable might not have been initialized" compiler error in my switch block?

I'm encountering "a variable might not have been initialized" error when using switch block. Here is my code: public static void foo(int month) { String monthString; switch (month) { ...

stackoverflow.com

 

이상해서 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

 

그래야지 에러가 없다.

반응형