我错在那里了?
class testtest
{
public static void main(String []args)
{
int x ,y=6,i;
for ( x=1;x<0;x++)
i=x*6; System.out.println(i);
}
}
总是说我的"i"没有初始化,为什么?
问题点数:30、回复次数:7Top
1 楼windindance(风舞轻扬·白首为功名)回复于 2006-03-04 15:16:46 得分 0
int x ,y=6,i; //这儿i没有初始化
for ( x=1;x<0;x++)
i=x*6; //这个循环执行次数为0,所以这行代码没有执行
System.out.println(i); //i没有初始化Top
2 楼f_acme(沧海一声笑)回复于 2006-03-04 15:17:08 得分 0
int x ,y=6,i;
你只有定义,没有初始化啊?这是在局部定义的变量,一定要初始化的,如果是在类的变量,可以不初始化,程序会自动初始化的。Top
3 楼725137(2006年不会菜)回复于 2006-03-04 15:20:46 得分 0
在方法内定义的变量称为局部变量.局部变量在定义时有规定.必须对他进行初始化..
也就是对他进行附值..
在方法外..类之中定义的称为全局变量.可以不初始化。系统自动初始化Top
4 楼opou()回复于 2006-03-04 15:27:02 得分 0
谢谢了,我晓得了!Top
5 楼xsyl_1982(黑欲浪子)回复于 2006-03-04 18:02:15 得分 0
其实这里把println方法放到for循环中就没错了Top
6 楼universe01(未知软体)回复于 2006-03-04 22:13:53 得分 0
初始化.Top
7 楼simpsonWang(simpson)回复于 2006-03-04 22:36:54 得分 0
int x ,y=6,i;
在这里i是方法内的变量,而不是类成员变量,所以当运行main()方法时
i的值是一个未知数,所以编译时可能会出错,一般在定义时为非类成员变量赋初值,这样可以保证程序通过编译,像上面的这段代码你把i和x都赋个初值0,就可以保证编译通过
Top




