[英]Switch statement uninitialized variable
下面的代碼告訴我: The local variable str may not have been initialized
public class experiment{
public static void main(String[] args){
int day = 1;
String str;
switch (day) {
case 1 : str = "nice";
break;
}
System.out.println(str);
}
}
所以,我給了str
一個null
值,它有效,但我仍然想知道為什么文檔上的那個沒有初始化值,我已經三重檢查,我不認為我有任何拼寫錯誤:
public class SwitchDemo {
public static void main(String[] args) {
int month = 8;
String monthString;
switch (month) {
case 1: monthString = "January";
break;
case 2: monthString = "February";
break;
case 3: monthString = "March";
break;
case 4: monthString = "April";
break;
case 5: monthString = "May";
break;
case 6: monthString = "June";
break;
case 7: monthString = "July";
break;
case 8: monthString = "August";
break;
case 9: monthString = "September";
break;
case 10: monthString = "October";
break;
case 11: monthString = "November";
break;
case 12: monthString = "December";
break;
default: monthString = "Invalid month";
break;
}
System.out.println(monthString);
}
}
因為在文檔示例的switch
中有一個default
case語句。 如果沒有其他case
陳述匹配,則調用它。 在您自己的代碼中,您沒有這樣的“后備”。
因此,總是至少有一個被調用的語句,它將始終初始化monthString
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.