/*
需求:产生25个int型随机数,对于每一个随机值,使用if-else语句来将其大于、小于或等于紧随他而随机产生的值。
*/
import java.util.*;
class RandomTest
{
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进行初始化,但在此执行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了吗,为什么海会提示错误呢?作者: 杨锦 时间: 2012-9-5 19:47
import java.util.*;
class RandomTest {
public static void main(String[] args) {
Random r = new Random();
int z = 0;//*****楼主在这里要对变量z进行初始化,int z = 0******
for (int x = 0; x < 25; x++) {
int y = r.nextInt(100);
System.out.println(y);
作者: 庄星睿 时间: 2012-9-5 20:44
import java.util.*;
class RandomTest
{
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进;行初始化,但在此执行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,并将y赋给局部变量z,但是java是强类型语言,编译时的时候,编译器要由上到下按照顺序检查语法错误,这个时候如果不在if((y-z)>0)这条语句之前对z进行初始化,分配内存空间,这个变量z是不能用的。作者: 黑马-刘心武 时间: 2012-9-5 22:52
其实是未对局部变量初始化就使用的错误,变量一定是要先初始化,然后才使用的
成员变量在定义时,会有默认的初始化值
而局部变量就必须自己定义初始化值,才能够对该变量进行操作.
楼主可以看以下代码解释: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,再对其进行初始化,故会报错 }
}
} 作者: 王红潮 时间: 2012-9-6 08:32
庄星睿 发表于 2012-9-5 20:44
import java.util.*;
class RandomTest
{