java多维数组打印的疑问

michalechuan 2018-01-21 04:31:04
int[][] arr2 = new int[5][5];
for (int i = 0;i<arr2.length;i++) {
for (int j=0;j<arr2[i].length;i++) {
System.out.print(arr2[i][j]);
}
System.out.println();

00000Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at ArrayDemo7.main(ArrayDemo7.java:35)

讲道理不应该输出以下吗?毕竟我定义了arr2是5行5列,默认都是0
00000
00000
00000
00000
00000
为什么输出了一行的00000之后就报错,报错显示5?
for (int w = 0;w<arr3.length;w++) {
System.out.print(arr3[w]);
}
这个1维数组就输出了00000;

can you help me? thanks!!!
初学者求指教,最好能说透一点吧,谢谢!!!
...全文
851 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
一楼正解,以后要认真点了
from me to us 2018-02-01
  • 打赏
  • 举报
回复
首先,作为一个初学者 你应该先知道你报的错是什么,错在哪
qq_40881558 2018-01-26
  • 打赏
  • 举报
回复
i-->j 替换下
ClumsyCoder 2018-01-23
  • 打赏
  • 举报
回复
把第二个for循环的i++ 换成j++
sdkakajian102 2018-01-22
  • 打赏
  • 举报
回复
一楼正解!!!!!!
咔咔菠萝 2018-01-21
  • 打赏
  • 举报
回复
因为你将i写成了j,当你打印的时候,i从0一直到4,所以你打印出来的是一排五个 00000 你的j永远都等于0,他一直小于arr[i].length,循环停留在第一个中,而且i继续自增大于了4。你声明的数组i只能小于5,所以在打印了五个0之后他出现了异常提示 00000Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
guLver 2018-01-21
  • 打赏
  • 举报
回复
for (int j=0;j<arr2[i].length;i++) { 看看, 第二个循环的不应该是i++ 应该是j++
ZHOU西口 2018-01-21
  • 打赏
  • 举报
回复
lz,你的理解没错,错在循环的控制上。 循环遍历二维数组的标准写法:

int[][] a = new int[5][5];
for(int i = 0; i < a.length; i++){
   for(int j = 0; j < a[i].length; j++){//这里控制一维数组中的每个数组遍历,要写j++,不能写i++
           System.out.print(a[i][j]);
    }
    System.out.println();
}

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧