日期:2014-05-20  浏览次数:20725 次

看来,这道题还得请了解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]; //这里赋值,已经被初始化了
------解决方案--------------------