java初始化···高手细讲

来源:百度知道 编辑:UC知道 时间:2024/06/01 13:30:47
public class xunhuan04
{
public static void main(String args[ ])
{
int i;
int j;
for(i=1;i<=5;i++)
j=1;
System.out.println("j的值为"+j);
}
}//错误
public class xunhuan03
{
public static void main(String args[ ])
{
int i;
int j;
for(i=1;i<=5;i++)
{
j=1;
System.out.println("j的值为"+j);
}
}
}//正确
public class xunhuan04
{
public static void main(String args[ ])
{
int i;
int j;
for(i=1;i<=5;i++)
{
j+=1;
System.out.println("j的值为"+j);
}
}
}
//错误
综合上面三个程序说说什么时候要初始化什么时候不要····1和2
有什么区别怎么1就错了·2就正确 还有第3个怎么回事···

1 错误,如果for循环里面的没有执行呢?
那能在控制台输出j的值吗? 没人给它赋值啊~~
2 正确,是for循环把输出语句包括了,要不都执行
要不都不执行
3 错误,一样的道理,万一for里面的要执行呢?那你就得
给j赋初值吧,要不怎么用呢?
如果还有疑问请 HI我

所有对象引用类型变量默认初始值为null
1 你不能这样进行初始化,你放在for下面,它不会被执行的,所有编译就报错
2的话 你输出的语句和j进行初始化的一句在同一个for循环里面,当编译器检测到输出语句的时候,就往上找,发现j进行了初始化,就成功了
至于3 编译的时候,
你没有初始化之前就试图使用它,编译器会抗议,
它发现j在开始的时候没有进行初始化,所有就报错
最好的话 局部变量在使用的时候就进行初始化了

你把初始化放在for循环,因为for循环里面的代码"有可能"执行不到,
所以程序会提示 j 可能未初始化

1错了是你的j没有初始化就用了,在java中如果用变量的话必须将变量初始化,你将j变成int j=0;就好了

2正确

3的错误和1一样,只要把int j;改成int j=0就可以了!