到目前为止,我还不知道如何正确地解决这个问题。 在嵌套循环中,例如
for (int i=0;i>0;i++)
{
for(int k=0;k<0;k++)
{
}
}
如果我们使用k,会有什么样的应用程序
我有这个问题,因为我想制作一个循环,它像星形打印那样迭代,使用* char打印左三角形,但是当光标移动时它迭代在二维矩阵上迭代数组项目,例如
a[0][0]
a[1][0], a[1][1]
a[2][0], a[2][1], a[2][2]
a[3][0], a[3][1], a[3][2], a[3][3]
我想找出一个for循环或能够迭代数组的东西,比如这个。你有什么建议?
答案 0 :(得分:3)
您必须更改第一个for
条件,因为当i = 0
条件i > 0
为假时,它永远不会进入循环。
请注意,当你排成一行时,k
必须以这种格式迭代:[0, 01, 012, 0123]
i
[0, 1, 2, 3]
。换句话说,k
必须迭代,直到达到i
的值,因此nested for
的条件必须为k < i + 1
。
for (int i = 0; i < 4; i++) {
for (int k = 0; k < i + 1; k++) {
// Here you should access to the array
// array[i][k]
System.out.print(i + " " + k + " - "); // [DEBUG]
}
System.out.println(); // [DEBUG]
}
输出只是为了查看索引
0 0 -
1 0 - 1 1 -
2 0 - 2 1 - 2 2 -
3 0 - 3 1 - 3 2 - 3 3 -
答案 1 :(得分:1)
看起来你想要的是像
for (int i = 0; i < SOME_LIMIT; ++i) {
for (int k = 0; k <= i; ++k) {
do_something_with (a[i][k]);
}
}
答案 2 :(得分:0)
看起来你已经完成了困难的部分 - 设计应用程序的基本前提,并在纸上写下你想做的事情。
现在你要做的就是把你写下的内容翻译成代码。
我会给你一个提示。在内部循环for(int k=0;k<0;k++)
上,thibnk关于如何更改它以实现您正在寻找的行为。
坚持下去,你会到达那里。困难的部分已经完成。