哪个帮我看下下面这个程序,我运行总是在红色部分报错(ma未初始化),敢问各位这是怎么回事,if..else不是初始化了吗?我需要详解。
public class test{
  public static boolean max(int table[],int max)
    {boolean ma; 
     for(int i=0;i<table.length;i++)
       if(max>table[i])ma=true;
       else ma=false;
     return ma;     }
  public static int max(int table[])
    {int max=table[0];
     for(int i=0;i<table.length;i++)
       if(table[i]>max)max=table[i];
     return max;
     }
  public static void main(String[] args){
    int table[]={4,54,87,1,32,475,34};
    System.out.println("最大值是"+max(table));
    System.out.println(max(table,max(table)));
    }}

解决方案 »

  1.   

    如果循环没有执行呢(也就是table.length==0时)?
    编译器哪里知道你的table.length是多长呀。所以他就提示你ma没初始化。
    你只要在定义ma是给个初始值就可以了boolean ma = false;//初始化下
      

  2.   

    改为boolean ma = false;后,程序仍然不运行最后一个语句,没有最后一句的结果,又是怎么回事
      

  3.   

    改为Boolean ma = false后没什么问题啊,你先输出最大的数,再把table里的数依次和max比较,最后返回的是table最后一个数和max比较的结果,当然为true
      

  4.   

    兄弟··我很想知道··传参数进去的时候是这样传的吗?
    (int table[])??
      

  5.   

    就是 int table[]你是想传进去什么啊~~~
    要给ma附一个初值;
    其次,兄弟,你要有点格式啊,切记!
      

  6.   

    帮你改了一下,依次打印出ma的值:public class Test {
    public static boolean max(int table[], int max) {
    boolean ma = false;
    for (int i = 0; i < table.length; i++) {
    if (max > table[i]) {
    ma = true;
    } else {
    ma = false;
    }
    System.out.println(ma);
    }
    return ma;
    } public static int max(int table[]) {
    int max = table[0];
    for (int i = 0; i < table.length; i++)
    if (table[i] > max)
    max = table[i];
    return max;
    } public static void main(String[] args) {
    int table[] = { 4, 54, 87, 1, 32, 475, 34 };
    System.out.println("最大值是" + max(table));
    max(table, max(table));
    }
    }
      

  7.   

    貌似你那个boolean ma;
    不是成员变量吧?不是成员变量,要显示初始化的。
    你定义一下,boolean ma = false;
      

  8.   

        public static boolean max(int table[],int max)
        {
    boolean ma = false; 
      
    for(int i=0;i<table.length;i++)
        {
    if(max>table[i])
        {
    ma=true;
        } 
    else
        {
    ma=false;
        }
        } 
       
    return ma; 
        }
      

  9.   

    传数组,不是用int table[]吗
      

  10.   

    public class Test{
      public static void main(String [] ars){
        int i = 0;
        System.out.println(i);
      }
    }
    *********************************************************
    public class Test{
      public static void main(String [] ars){
        int i;
        i = 0;
        System.out.println(i);
      }第二个程序里面的 i 也是局部变量,没有显示初始化为什么就可以呢???
    而 i 如果在语句块里赋值然后在打印 i 就显示“i 未被初始化”,而这种情况在上面第二个程序里就不存在!!!!!
    }