日期:2014-05-20  浏览次数:20622 次

请问myeclipse这样提示错误是什么意思?
//开始switch语句结构
  int jinqian;
switch (num){
case 1:
System.out.println("成功换购:"+no1 );
jinqian=2;
break;
case 2:
System.out.println("成功换购:"+no2 );
jinqian=3;
break;
case 3:
System.out.println("成功换购:"+no3 );
jinqian=10;
break;
case 4:
System.out.println("成功换购:"+no4 );
jinqian=20;
break;
case 5:
System.out.println("成功换购:"+no5 );
jinqian=20;
break;
case 0:
System.out.println("不换购" );
jinqian=0;
break;
default:
System.out.println("请输入0~5之间的数字!");
break;
}

System.out.println("本次消费金额:" +(money+jinqian));
提示我jinqian尚未初始化,我就搞不明白了,已经声明过了吧……
注意,以下内容是嵌套IF结构中的语句,只是一部分,no1~no5没问题

------解决方案--------------------
局部变量使用前必须初始化,你的switch最后default里面没有给它赋值,这样就导致了如果num为6等情况会导致jinqian没有赋值,所以编译器报错。
------解决方案--------------------
探讨
引用:
局部变量使用前必须初始化,你的switch最后default里面没有给它赋值,这样就导致了如果num为6等情况会导致jinqian没有赋值,所以编译器报错。

初始化的意思是?
请问我这样更改后就可以了{int jinqian=0;}这算初始化不?

------解决方案--------------------
定义局部变量要有赋初始值的习惯 比如
int a = 0
String b=""
HashMap hm=null
等等