首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

由此看来,这道题还得请了解JAVA语法规则的朋友来说一下了!

2011-12-15 
看来,这道题还得请了解JAVA语法规则的朋友来说一下了!!!!!!!!!!!下面的程序编译时提示MAX,MIN没有初始化,J

看来,这道题还得请了解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中局部变量必须初始化,而全局变量可以不必初始化,系统会赋给他默认的值,但作为一名开发人员,最好还是都初始化了为好。。。

热点排行