其实是未对局部变量初始化就使用的错误,变量一定是要先初始化,然后才使用的
成员变量在定义时,会有默认的初始化值
而局部变量就必须自己定义初始化值,才能够对该变量进行操作.
楼主可以看以下代码解释:z=y,其实就是对z进行初始化,初始化在使用z之前,就是正确的,初始化在z使用之后,就是错误的.
import java.util.*;
public class Demo4 {
public static void main(String[] args)
{
Random r = new Random();
int z;//在此初始化z的话,不会提示错误
for (int x=0; x<25; x++)
{
int y = r.nextInt(100);
System.out.println(y);
z=y;//z=y,是将y的值赋给了z,所以这时候其实相当于对z进行初始化(因为y已经获得了一个随机数),所以不会报错 if (x>=1)
{
if ((y-z)>0)//在这里执行的z,必须先对其进行初始化 System.out.println(y+"大于"+z);
else if ((y-z)==0)
System.out.println(y+"等于"+z);
else
System.out.println(y+"小于"+z);
}
//z=y;如果在这里才将y值赋给z的话,由于上面已经在使用z,相当于先使用局部变量z,再对其进行初始化,故会报错 }
}
}
|