...
    double[][] a2;
    if ( (a != 0) && (b != 0)) {
      a2 = new double[a][b];
    }
    else {
      a2 = new double[1][1];
    }   
    ...注意作用域, 你的定义a2只是if块中的局部变量,除了{}就不能访问

解决方案 »

  1.   

    出了if(xxx){
          double[][] a2=new double[a][b];  //局部变量, 作用域仅在最近的{ }中
     }
      

  2.   

    你的a2只是定义在if和else中,出了if else就没有意义了,系统会将这部分资源回收,肯定后面再使用a2的时候会报错了,将其定义在int i,j的后面即可
      

  3.   

    在if ,else语句块里新建的二维数组double[][] a2 ,出了该作用域就结束
      

  4.   

    public static double[][] GetArray(int a,int b) {
          int i;
          int j;
          double[][] a2;
          if ((a!=0) &&(b!=0))           
             a2=new double[a][b];
          else 
             a2=new double[1][1];
           for(i=0;i<a2.length;i++)
             for(j=0;j<a2[i].length;j++)
                 a[i][j]=7+pRand(3); 
          return a2;
       }