JAVA什么情况下要赋初值

来源:百度知道 编辑:UC知道 时间:2024/05/26 09:45:59
public class c1_1
{
public static void main(String[]args)
{
int k,m=0,l;
for(k=1;k<=10;k++)
m=k*k;
l=m;
System.out.println("l="+l);
}
}
这个程序为什么只有M必须赋初值?
public class c1_1
{
public static void main(String[]args)
{
float y=0,x=9;
if(x<1)
y=x;
else if(x>=1&&x<10)
y=3*x-2;
else if(x>=10)
y=4*x;
System.out.println("y="+y);
}
}
这道题为什么Y必须赋初值?

Java的变量都是地址传递,
以上两个例子m和y的使用都是将表达式的值赋给它们,但是表达式是没有地址的,所以必须赋初值给他们分配一个地址。

System.out.println("y="+y); 要使用到y变量

对于基本类型变量,如int y;java只是定义了一个int类型的变量引用,名称叫y,而没有在内存中分配具体内容保存数据
而int y = 0,则定义了一个int类型引用,并且指向内存中0保存的位置,所以System.out.println("y="+y)时,java能找到y所指向的内存,并将里面的值输出

而不初始化,由于没有具体内存指向,java不知道输出什么,所以报错

一般在具体操作某个变量之前,都需要将其初始化