java关于二维数组的问题。

首先这个二维数组可以看成是一个标准的 3X3 的矩阵 第一个循环 :for(int i = 0;i
java关于二维数组的问题。
首先这个二维数组可以看成是一个标准的 3X3 的矩阵

第一个循环 :
for(int i = 0;i<arr.length;i++){
for(int j=0;j<arr.length;j++){
System.out.print(arr[i][j]);
}
System.out.println();
}
第一轮大循环:i 取值为0时,j取值0,1,2,则打印:
arr[0][0],arr[0][1],arr[0][2]
即: 1,2,3
由此推导 i=1,2 时打印:
4,5,6
7,8,9

第二个大循环:
for(int i = 0;i<arr.length;i++){
for(int j=0;j<arr.length;j++){
System.out.print(arr[j][i]);
}
System.out.println();
}
}
第一轮大循环:i 取值为0时,j取值0,1,2,则打印:
arr[0][0],arr[1][0],arr[2][0]
即: 1,4,7
由此推导:i取值1,2时打印内容为:
2,5,8
3,6,9

最后应该打印出两个矩阵:
123
456
789
147
258
369
Right?2009-08-02
嗯?这个不是什么排列吧?只是普通的打印输出。
而且,第二层循序不对哦,虽然程序执行没问题。
要改成
---
for(int i = 0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
System.out.print(arr[i][j]);
}
System.out.println();
}2009-08-02
楼上说得没错,循环写错了,虽然没有出错,那是因为刚好行 = 列而已。
这个二维数组有3行3列,遍历时应该是每一行,每一列的输出,arr.length获得的就是数组的行,而arr[i].length就是每一行的列数。楼主意思应该是的第一种循环是按123 456 789输出,第二种应该是输出147 258 369吧?循环条件一样的,应该改成楼上那样才对的。2009-08-02
如果楼主将数组换成 int arr[][]=new int[][]{{1,2,3},{4,5,6},{7,8,9,10}};就可用发现错误,你的这个程序正如一楼所说的一样,仅仅是是普通的打印输出。
arr.length表示包含多少个一维数组,
arr[i].length表示第一个一维数组包含多少个元素

修改程序如下:
public class shuzi { // 创建类
public static void main(String[] args) {
int arr[][]=new int[][]{{1,2,3},{4,5,6},{7,8,9}};
for(int i = 0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
System.out.print(arr[i][j]);
}

System.out.println();
}
for(int i = 0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
System.out.print(arr[j][i]);
}
System.out.println();
}
}
}2009-08-02
mengvlog 阅读 24 次 更新于 2025-09-10 11:37:33 我来答关注问题0
  • 首先这个二维数组可以看成是一个标准的 3X3 的矩阵 第一个循环 :for(int i = 0;i

  • arr是二维数组,我们可以这样理解二维数组:二维数组其实就是存放一维数组的一维数组(即元素是一维数组)所以一个二维数组的长度,就是里面一维数组的个数,所以:arr.length就是 2 arr[1].length就是指二维数组里面第一个元素的长度(因为其元素是一维数组,所以有长度)数组下标是从0开始 所以第一个...

  •  yaoyue1019 JAVA二维数组的一个很简单的问题,我是初学者,我实在想不通,帮我解答一下谢谢了。

    int myarr[][] = {{19,1},{48,11}};表示 myarr是一个二维数组 数组0的值是{19,1} 数组1的值是{48,11} 现在访问的是myarr[1][1] 肯定就是访问数组1的值1 所以肯定是11了 每个值都是独立的 为什么改前三个会影响到最后的那个 你要这么说我反而觉得很想不通 感觉你应该是基础比...

  • int[][]b){try{int sum = 0;int[][]c=new int[a.length][a.length ];for(int i=0;i

  •  cuixubinmo java关于二维数组分配空间

    2.两种分配方式其实是相同的,都是先开辟内存空间,然后赋值。区别有两点,一是在于何时赋值,第一种方式编程者没给赋值,但系统会默认赋值(默认值根据数据类型不同,赋的值也不同一般整形赋值0,浮点型赋值0.0),第二种是边分配边赋值。第二点区别是数组维数上的设定:int s[][]=new int[3][...

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部