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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张智文 中级黑马   /  2013-8-7 23:39  /  1548 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 lilylikejack 于 2013-8-8 08:13 编辑

class FourD_Demo {
public static void main (String args[]){
int FourD[][][][]=new int [2][3][4][5];
int i,j,k,l;
   for (i=0;i<2;i++)
     for (j=0;i<3;j++)
       for (k=0;i<4;k++)
         for (l=0;i<5;l++)
            FourD[j][k][l]=i*j*k*l;
  
   for (i=0;i<2;i++){
     for (j=0;i<3;j++){
       for (k=0;i<4;k++){
         for (l=0;i<5;l++)
            System.out.print(FourD[j][k][l]+" ");
         System.out.println();
         }
       System.out.println();
       }
     System.out.println();
     }      
   }
}  

为什么我一运行就是错误:
Exception in thread "main" java.lang.ArrayIndexOutofBounds Exception: 5 at FourDMatrix.main(FourDMatrix.java:9)

评分

参与人数 1黑马币 +6 收起 理由
吴光新 + 6 淡定

查看全部评分

3 个回复

倒序浏览
代码要存放在代码块里面,别人看着清晰明了
回复 使用道具 举报
楼主的程序代码是因为粗心不小心写错了吧?代码中除了第一个for循环外,其他3个内层的for循环中间的控制次数语句都写错了,应该把i分别改为j、k、l,楼主都写成了i,所以导致的数组下标越界,正确的代码如下:
  1. class Test
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int FourD[][][][]=new int [2][3][4][5];
  6.                 int i,j,k,l;
  7.                 for (i=0;i<2;i++)
  8.                         for (j=0;j<3;j++)
  9.                                 for (k=0;k<4;k++)
  10.                                         for (l=0;l<5;l++)
  11.                                                 FourD[i][j][k][l]=i*j*k*l;
  12.                 for (i=0;i<2;i++)
  13.                 {
  14.                         for (j=0;j<3;j++)
  15.                         {
  16.                                 for (k=0;k<4;k++)
  17.                                 {
  18.                                         for (l=0;l<5;l++)
  19.                                                         System.out.print(FourD[i][j][k][l]+"\t");
  20.                                         System.out.println();
  21.                                 }
  22.                                 System.out.println();
  23.                         }
  24.                         System.out.println();
  25.                 }      
  26.         }
  27. }
复制代码
运行结果如图:

多维数组.jpg (20.75 KB, 下载次数: 15)

多维数组.jpg

评分

参与人数 2技术分 +1 黑马币 +6 收起 理由
夜默 + 1
吴光新 + 6 赞一个!

查看全部评分

回复 使用道具 举报
  1. package com.itheima;

  2. class Test11 {
  3.         public static void main(String args[]) {
  4.                 int FourD[][][][] = new int[2][3][4][5];
  5.                 int i, j, k, l;
  6.                 for (i = 0; i < 2; i++)
  7.                         for (j = 0; j < 3; j++)
  8.                                 for (k = 0; k < 4; k++)
  9.                                         for (l = 0; l < 5; l++)
  10.                                                 FourD[i][j][k][l] = i * j * k * l;

  11.                 for (i = 0; i < 2; i++) {
  12.                         for (j = 0; j < 3; j++) {
  13.                                 for (k = 0; k < 4; k++) {
  14.                                         for (l = 0; l < 5; l++)
  15.                                                 System.out.print(FourD[i][j][k][l] + " ");
  16.                                         System.out.println();
  17.                                 }
  18.                                 System.out.println();
  19.                         }
  20.                         System.out.println();
  21.                 }
  22.         }
  23. }
复制代码
楼上说的没错

是你的循环内的变量的变量名写错了....


评分

参与人数 1技术分 +1 收起 理由
夜默 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马