读书人

由此看来,这道题还得请了解JAVA语法规

发布时间: 2011-12-15 23:41:24 作者: rapoo

看来,这道题还得请了解JAVA语法规则的朋友来说一下了!!!!!!!!!!!
下面的程序编译时提示MAX,MIN没有初始化,JAVA当中不初始化不也是由JAVA系统默认为0吗?
public class aa
{
public static void main(String args[])
{
final int size=10;
int max,min,i;
int arr[]=new int[size];
for(i=0;i <size;i++)
{
arr[i]=(int)(Math.random()*100);
}
for(i=0;i <size;i++)
{
System.out.println(arr[i]);
max=arr[i] > max ? arr[i]:max;
min=arr[i] < min ? arr[i]:min;
}
System.out.println( "最大值= " + max);
System.out.println( "最小值= " + min);
}
}
而同样是一个程序这样写则不提示没有初始化了如下:
public class Arraymax
{
public static void main(String args[])
{
final int SIZE = 10; //常量
int table[] = new int [SIZE];
int i,max,min;
for (i=0;i <table.length;i++)
table[i] = (int) (Math.random()*100); //产生随机数
System.out.print( "table: "); //输出一维数组
for (i=0;i <table.length;i++)
System.out.print( " "+table[i]);
System.out.println();
max = table[0];
min = table[0];
for (i=1;i <table.length;i++)
{
if (table[i]> max) max = table[i];
if (table[i] <min) min = table[i];
}
System.out.println( "Max= "+max);
System.out.println( "Min= "+min);
}
}

[解决办法]
实例变量和静态变量才有默认的初始值,局部变量是没有的,使用之前必须赋值
[解决办法]
max=arr[i] > max ? arr[i]:max;//
min=arr[i] < min ? arr[i]:min;//这里的max和min都没有初始化怎么能用呢


max = table[0];
min = table[0]; //这里赋值,已经被初始化了
------解决方案--------------------


int max,min,i;这里是局部变量
成员变量 int 才会初始化为0
[解决办法]
类的成员变量才会自动初始会
[解决办法]
max=arr[i] > max ? arr[i]:max;//
min=arr[i] < min ? arr[i]:min;//

严重错误。
[解决办法]
同意
lower0661(我的黑夜风吹不走)
实例变量和静态变量才有默认的初始值,局部变量是没有的,使用之前必须赋值!
[解决办法]
同意
lower0661(我的黑夜风吹不走)
实例变量和静态变量才有默认的初始值,局部变量是没有的,使用之前必须赋值!
[解决办法]

max=arr[i] > max ? arr[i]:max;//
min=arr[i] < min ? arr[i]:min;//

严重错误。

=============================================
是啊,不管会不会默认初始化,你去初始化一下是一个良好的编程习惯,就算java给你初始化
[解决办法]
楼上的几个哥们说的都很对
main() 说白了也是一个类中的方法
在方法里定义的变量是 局部变量一定要初始化的



int i,max,min;
这相当于先声明 三个变量

max = table[0];
min = table[0];
这个就相当于 初始化赋值了

是可以分两步进行的
[解决办法]
局部变量必须初始化
[解决办法]
成员变量在类初始化时分配了空间有默认值,而局部变量则不行
[解决办法]
只有实例变量在ClassLoader加载类的时候会一并初始化 如无指定初始值 则置默认值
局部变量不经历这一过程 所以必须指定初始化
[解决办法]
java中局部变量必须初始化,而全局变量可以不必初始化,系统会赋给他默认的值,但作为一名开发人员,最好还是都初始化了为好。。。

读书人网 >J2SE开发

热点推荐