public class Tuxing 
{
public static void main(String args[])
{
int i,j;
i=10;
j=10;
int m=10;
int n=10;
char a[][]=new char[i][j];
for( m=0;m<10;m++)
for(n=0;n<10;n++)
a[i][j]='*';
for(m=0;m<10;m++)
System.out.println();
for(n=0;n<=m;n++)
System.out.print(a[i][j]);

}}
这次没有过界了 但是程序还是不能运行
提示是这个:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at Tuxing.main(Tuxing.java:14)

解决方案 »

  1.   

    是需要调用什么 JAVA 给的类吗?? 还是怎么回事???
      

  2.   

    System.out.print(a[i][j]);
    i=10,j=10.这里搞错了。
    a[10][10]的数组,index只能0到9,你应该改成a[m][n]或a[n][m].
      

  3.   

    public class Test {
        public static void main(String args[])
        {
            char a[][]=new char[10][10];
            for(int i=0; i<a.length; i++) {
                for(int j=0; j<a[i].length; j++) {
                    a[i][j] = '*';
                }
            }
            
            
            for(int i=0; i<a.length; i++) {
                System.out.println();
                for(int j=0; j<a[i].length; j++)
                    System.out.print(a[i][j]);
            }
                
        }
    }
      

  4.   

    数组的下标是从0开始的,i=10的话,实际上是有11个了。
    所以System.out.print(a[i][j]);报ArrayIndexOutOfBoundsException(数组超出下标)错。
      

  5.   

    a[i][j]='*';
    和   
    System.out.print(a[i][j]);i 和 j 固定的10,这和a[i][j] 就代表 a[10][10],这肯定是越界的呀
      

  6.   


    public class Tuxing 
    {
        public static void main(String args[])
        {
            int i,j;
            i=10;
            j=10;
            int m=10;
            int n=10;
            char a[][]=new char[i][j];
            for( m=0;m<10;m++){
                for(n=0;n<10;n++)
                    a[m][n]='*';
            }
            for(m=0;m<10;m++){
                System.out.println();
                for(n=0;n<=m;n++)
                    System.out.print(a[m][n]);
           }
                
        }}我认为你的代码应该这样写才正确,数组中的下标是从0开始的,因为你的i和j的值都是10,所以运行时就会报数组越界错误。
      

  7.   

    public class Tuxing 
    {
        public static void main(String args[])
        {
            int i,j;
            i=10;
            j=10;
            int m=10;
            int n=10;
            char a[][]=new char[i][j];
            for( m=0;m<10;m++){
                for(n=0;n<10;n++)
                    a[m][n]='*';
            }
            for(m=0;m<10;m++){
                System.out.println();
                for(n=0;n<=m;n++)
                    System.out.print(a[m][n]);
            }
        }}
        我认为你的代码应该这样写才正确,数组中的下标是从0开始的,因为你的i和j的值都是10,所以运行时就会报数组越界错误。
      

  8.   

    继续越界。楼主,Java的数组下标计数从0开始
      

  9.   


    int i,j;
    i=10;
    j=10; a[i][j]='*';
    你i j 都是10  a[10][10]当然报下标越界错咯
      

  10.   

    public static void main(String args[])
        {
            int i,j;
            i=10;
            j=10;
            int m=10;
            int n=10;
            char a[][]=new char[i][j];
            for( m=0;m<10;m++){
                for(n=0;n<10;n++)
                    a[m][n]='*';
            }
            for(m=0;m<10;m++){
                System.out.println();
                for(n=0;n<=m;n++)
                    System.out.print(a[m][n]);
           }
        }这样就好了
      

  11.   

    楼主你上面的代码就是相当于这个
             int i,j;
            i=10;
            j=10;
            char a[][]=new char[i][j];
            System.out.print(a[i][j]);
    肯定越界了啊
      

  12.   

    这样改public static void main(String args[]) 
        { 
            int i,j; 
            i=10; 
            j=10; 
            //int m=10; //用不到
            //int n=10; //用不到
            char a[][]=new char[i][j]; 
            for( m=0;m <10;m++){ //m<10最好改为m<i,只是为了规范
                for(n=0;n <10;n++) //n<10最好改为n<j,同理
                    a[m][n]='*'; 
            } 
            for(m=0;m <10;m++){ 
                System.out.println(); 
                for(n=0;n <=m;n++) 
                    System.out.print(a[m][n]); 
            } 
        } 
      

  13.   

    public class Tuxing 
    {
        public static void main(String args[])
        {
            int i,j;
            i=10;
            j=10;
            int m=10;
            int n=10;
            char a[][]=new char[i][j];
            for( m=0;m<10;m++)
                for(n=0;n<10;n++)
                    a[i][j]='*';
            for(m=0;m<10;m++)
                System.out.println();
                for(n=0;n<=m;n++)
                    System.out.print(a[i][j]);
                
        }}
    调试一下改改吧 。
      

  14.   

    循环语句,条件语句如果只有一条语句的话,就不用大括号,如果要将几条语句当成一个整体的话就要加上大括号。
    你的程序for(m=0;m <10;m++) 
                System.out.println(); 
                for(n=0;n <=m;n++) 
                    System.out.print(a[i][j]); 
    应该是:for(m=0;m <10;m++) {
                System.out.println(); 
                for(n=0;n <=m;n++) 
                    System.out.print(a[i][j]); 
          }
    内层循环用到了外层循环的变量,而这个变量又是此变量所在的大括号内全局的。
    你写的是两个循环,第一个循环结束之后,开始下面的循环,而此时变量m的值已经是10了,数组的下标是从0开始的,你定义的长度又只有十位,所以会报下标越界异常。
      

  15.   

    System.out.print(a[i][j]);
    应该是System.out.print(a[m][n]);