Java:多维数组输出困惑?

标签 java arrays multidimensional-array

public class VarNoOfCols {
    public static void main(String[] args) {
        int a[][] = new int[3][];

        a[0]=new int[3];
        a[1]=new int[2];
        a[2]=new int[1];
        int temp=3;
        for(int i =0; i<3;i++) {
            for(int k=0;k<temp;k++) {
                a[i][k]= k*10;
                           temp-- ;
            }


        }
    }
}

--- 我假设的输出 ---- 如下 --- 但这是不正确的。

(0 0) 0  (0 1) 10
(1 0) 0  (1 1) 10
(2 0) 0  (2,1) 10

我知道这是不正确的。 (我的问题是 - 在完成第二次迭代时,“k”大于“temp”,当条件失败时,它将停止内部语句并执行下一个工作(无论它应该是什么)。为什么我得到 (0,2) = 20 以及为什么我看不到 (2,1) = 10 ?

您可以看到正确的输出:

(0 0) 0  (0 1) 10 (0 2) 20
(1 0) 0  (1 1) 10
(2 0) 0

我是一名学习者,我非常感谢这里有人的帮助。谢谢

最佳答案

像这样更改代码:

for(int i =0; i<3;i++)
{
    for(int k=0;k<3;k++)
        a[i][k]= k*10;

}

如果您想要方形输出,为什么要使用控制变量 temp 来更改 i 上每次迭代的输出条目数?

关于Java:多维数组输出困惑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10460981/

相关文章:

c - 在 C 中取消引用指针数组

c - 指向多维数组的指针

java - 作为字符串返回的 URL 在 JSF 中无效

java - 使用 JNA User32 平台图的 NoSuchMethodError

java - 在并行数组中搜索匹配值

javascript - 如何在页面加载或刷新时打印或回显随机 php 字符串?

c - 如何在函数声明语句中使用二维数组?

javascript - 只能通过 DevTools 从 JavaScript 映射访问值

Java:getMinutes 和 getHours

java - 查找具有不同长度的行的二维数组中的列之和