下面的程序编译时提示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);
    }
}

解决方案 »

  1.   

    max=arr[i] > max ? arr[i]:max;//
    min=arr[i] < min ? arr[i]:min;//这里的max和min都没有初始化怎么能用呢
    max = table[0];
    min = table[0]; //这里赋值,已经被初始化了
      

  2.   

    int max,min,i;这里是局部变量
    成员变量 int 才会初始化为0
      

  3.   

    max=arr[i] > max ? arr[i]:max;//
    min=arr[i] < min ? arr[i]:min;//严重错误。
      

  4.   

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

  5.   

    同意
    lower0661(我的黑夜风吹不走) 
    实例变量和静态变量才有默认的初始值,局部变量是没有的,使用之前必须赋值!
      

  6.   

    同意
    lower0661(我的黑夜风吹不走) 
    实例变量和静态变量才有默认的初始值,局部变量是没有的,使用之前必须赋值!
      

  7.   


    max=arr[i] > max ? arr[i]:max;//
    min=arr[i] < min ? arr[i]:min;//严重错误。=============================================
    是啊,不管会不会默认初始化,你去初始化一下是一个良好的编程习惯,就算java给你初始化
      

  8.   

    楼上的几个哥们说的都很对
    main() 说白了也是一个类中的方法
    在方法里定义的变量是 局部变量一定要初始化的int   i,max,min; 
    这相当于先声明 三个变量max   =   table[0]; 
    min   =   table[0];   
    这个就相当于 初始化赋值了是可以分两步进行的
      

  9.   

    只有实例变量在ClassLoader加载类的时候会一并初始化 如无指定初始值 则置默认值
    局部变量不经历这一过程 所以必须指定初始化
      

  10.   

    java中局部变量必须初始化,而全局变量可以不必初始化,系统会赋给他默认的值,但作为一名开发人员,最好还是都初始化了为好