A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 伍仪华 黑马帝   /  2011-7-29 18:29  /  1913 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请输出0 1 2 3
      1 2 3 4
      2 3 4 5
      3 4 5 6
我变得程序如下,编译通过了,就是运行通不过,请告诉看看什么原因
class shuzu1
{
  public static void main(String args[])
{
   int a[][]=new int[4][4];
   int i,j;
   for(i=0;i<4;i++)
    {
      for(j=0;j<4;j++)
       {
        a[j]=i+j;
       }
       System.out.println(a[j]);
    }
   System.out.println("\n");
}
}问题补充:

运行出现这个 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
        at shuzu1.main(shuzu1.java:13)

3 个回复

倒序浏览
黑马网友  发表于 2011-7-29 18:37:29
沙发
给你稍微修改了下   运行通过[code]package com.itcast.heima;

public class Test2
{

public static void main(String[] agrs)
{
        int a[][]=new int[4][4];
           int i,j = 0;
           for(i=0;i<4;i++)
            {
              for(j=0;j<4;j++)
               {
                a[i][j]=i+j;
                System.out.print(a[i][j]);
               }
              System.out.println("\n");
            }
          
}
}[/code]
回复 使用道具 举报
[code=java]java.lang.ArrayIndexOutOfBoundsException://非法索引访问数组时抛出的异常[/code]int[][] a是一个二维数组
a是一个二维数组,里面存储的int[] 类型的一维数组
现在可以来看你的代码里面的这个代码块[code=java]for(i=0;i<4;i++) {
      for(j=0;j<4;j++) {
            a[j]=i+j;
      }
      System.out.println(a[j]);
} [/code]其中第三行,循环的四遍结果分别为:a[0] = 0 ; a[1] = 1 ; a[2] = 2 ; a[3] = 3 ;
这里就和我们一开始说的a是一个二维数组,里面存储的int[] 类型的一维数组,int[]是一个Object对象 ,而上面程序里面存的是一个基本类型的变量,结果你懂的

我觉得你应该改成这样试试[code=java]for(i=0;i<4;i++) {
      for(j=0;j<4;j++) {
            a[j]=i+j;
      }
      System.out.println(a[j]);
} [/code]我的电脑上没有运行环境,应该是没错的
[ 本帖最后由 詹季春 于 2011-07-29  18:46 编辑 ]
回复 使用道具 举报
黑马网友  发表于 2011-7-29 18:55:29
板凳
for(j=0;j<4;j++)
       {
        a[j]=i+j;
       }
       System.out.println(a[j]);

//数组越界。
当j增加到4时,就会退出for循环,接着你输出a[j],因为这时j已经是4了,所以越界。
另外a[j]=i+j;这行也不对
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马