java中的switch语句的问题

publicclassAAA{publicstaticvoidmain(Stringargs[]){intmonth=4;Stringseason;switch(mont... public class AAA
{
public static void main(String args[])
{
int month=4;
String season;
switch (month)
{
case 1:
case 2:
case 12:
season="Winter";
break;
case 3:
case 4:
case 5:
season="Spring";
break;
case 6:
case 7:
case 8:
season="Summer";
break;
case 9:
case 10:
case 11:
season="Autumn";
break;
}
System.out.println("是"+season+".");

怎么总提示“可能尚未初始化变量season”??请各位高手指教
展开
 我来答
渝宝间2847
2009-08-27 · TA获得超过134个赞
知道答主
回答量:70
采纳率:0%
帮助的人:0
展开全部
很明显,说明你变量season未初始化就使用了该变量。

从你的switch上来说,因为编辑器不会去解释你代码的逻辑,虽然你的整个代

码的逻辑可以很明显看出season一定会进行初始化,但编辑器不会去分析你的逻

辑是怎么样的。

如果编辑器会去分析你的逻辑,你想想呀,当你把变量month=100或者其它更

复杂的算法时,那编辑器还得执行一下才知道你season是不是已经初始化,这肯

定是不符合逻辑的。

所以,解决办法就是你需要给你的season初始化一个值,season=null或者其它

的一个默认值也可以,当然,你同样也可以将season定义为全局变量,你就不用

进行初始化,因为它将默认为NULL.

多看看JAVA基础方面的知识吧。你定义一个String season; 这个指针是没有指

向任何一个地址的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友914696642
2009-08-27 · TA获得超过779个赞
知道小有建树答主
回答量:332
采纳率:0%
帮助的人:0
展开全部
因为你没有给season赋初始值,switch语句中的case不覆盖所有情况,如果你给13,season就为null了。这个是程序的一种检查,如果你不想看到这个提示,加一个default就可以了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c4249ef
2009-08-27 · TA获得超过4867个赞
知道大有可为答主
回答量:1855
采纳率:0%
帮助的人:3219万
展开全部
String season="";

类变量需要初始化,全局变量不用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cjl23
2009-08-27 · TA获得超过565个赞
知道答主
回答量:270
采纳率:0%
帮助的人:158万
展开全部
定义session的时候这样写:
String session = "";
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式