public class lo
{
public static void main(String arg[])
{
int [][]a=new int[3][3];
int [][]b={{21,19,-37},{16,56,-45},{70,25,48}};
int [][]sum=new int[3][3];
int i,j;
for(i=0;i<3;i++)
{
 for(j=0;j<3;j++)
{
 a[i][j]=(i+1)*10+(j+1);
}
}
for(i=0;i<3;i++)
{
 for(j=0;j<3;j++)
{
 sum[i][j]=a[i][j]+b[i][j];
}
 System.out.print(sum[i][j]+"\t");
}
}
}
请问我这句话怎么运行不了,用JDK ,是否缺少类?

解决方案 »

  1.   

    错在这 System.out.print(sum[i][j] + "\t");  
    j的值为3时会出错
      

  2.   

    数组越界 for (i = 0; i < 3; i++)
    {
    for (j = 0; j < 3; j++)
    {
    sum[i][j] = a[i][j] + b[i][j];
    System.out.print(sum[i][j] + "\t");
    }
    }
      

  3.   

    javac lo.java是过了,但java lo出现Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:3 
    at lo.main(lo.java:22)
      

  4.   


    就是因为
    for(j=0;j <3;j++) 

    sum[i][j]=a[i][j]+b[i][j]; 

    System.out.print(sum[i][j]+"\t"); 
    } 应写成
    for(j=0;j <3;j++) 

    sum[i][j]=a[i][j]+b[i][j]; 
    System.out.print(sum[i][j]+"\t"); 


      

  5.   

     for (i = 0; i < 3; i++)
            {
                for (j = 0; j < 3; j++)
                {
                    sum[i][j] = a[i][j] + b[i][j];
                    System.out.print(sum[i][j]+"\t");
                    if (2 == j)
                    {
                        System.out.println();
                    }            }
            }
      

  6.   

    错在这句上了
    System.out.print(sum[i][j]+"\t");
    因为执行完循环i=3,j=3
    导致sum数组越界异常.