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/