gpt4 book ai didi

java - Switch 语句未初始化的变量

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:10:26 25 4
gpt4 key购买 nike

下面的代码给我:局部变量 str 可能没有被初始化

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

关于java - Switch 语句未初始化的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13217351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com