sia*_*ooo 7 java switch-statement
以下代码给了我: 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);
}
}
Run Code Online (Sandbox Code Playgroud)
所以,我给了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);
}
}
Run Code Online (Sandbox Code Playgroud)
J. *_*een 13
因为文档示例中有一个defaultcase语句switch.如果没有其他case语句匹配则调用它.在您自己的代码中,您没有这样的"后备".
因此,总会有至少一个被调用的语句,它将始终初始化monthString.
| 归档时间: |
|
| 查看次数: |
303 次 |
| 最近记录: |