使用 For 循环程序片段跟踪指针
Keeping Track of Pointer with For loop program fragment
以下哪个程序片段会产生此输出? (忽略间距)
2-----
-4----
--6---
---8--
----10-
-----12
想象一下,如果行和列完全对齐。
for (int i = 1; i <= 6; i++) {
for (int k = 1; k <= 6; k++)
if (k == i)
System.out.print(2 * k);
else
System.out.print("-");
System.out.println("");
}
上面的代码片段如何打印?
2-
-
-
-
-
-
4-
以上是...我认为代码片段应该打印的内容,因为我不确定通过将 k 从 1 增加到 6 循环一次内循环后指示我插入下一个符号的位置的指针的位置。我怎么错了?
没有大括号的for
循环仅适用于下一条语句(即if
和else
)。如果你添加大括号那么你的例子看起来像
for (int i = 1; i <= 6; i++) {
for (int k = 1; k <= 6; k++) {
if (k == i) {
System.out.print(2 * k);
} else {
System.out.print("-");
}
}
System.out.println("");
}
因此,内部循环打印 6 个内容,其中一个是 2 * k
(当 k
等于 i
时)或 -
。然后下一条语句添加一个换行符。重要的是要注意 Java 没有指针。
以下哪个程序片段会产生此输出? (忽略间距)
2-----
-4----
--6---
---8--
----10-
-----12
想象一下,如果行和列完全对齐。
for (int i = 1; i <= 6; i++) {
for (int k = 1; k <= 6; k++)
if (k == i)
System.out.print(2 * k);
else
System.out.print("-");
System.out.println("");
}
上面的代码片段如何打印?
2-
-
-
-
-
-
4-
以上是...我认为代码片段应该打印的内容,因为我不确定通过将 k 从 1 增加到 6 循环一次内循环后指示我插入下一个符号的位置的指针的位置。我怎么错了?
没有大括号的for
循环仅适用于下一条语句(即if
和else
)。如果你添加大括号那么你的例子看起来像
for (int i = 1; i <= 6; i++) {
for (int k = 1; k <= 6; k++) {
if (k == i) {
System.out.print(2 * k);
} else {
System.out.print("-");
}
}
System.out.println("");
}
因此,内部循环打印 6 个内容,其中一个是 2 * k
(当 k
等于 i
时)或 -
。然后下一条语句添加一个换行符。重要的是要注意 Java 没有指针。