以下哪个程序片段会产生此输出? (忽略间距)
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来进行。我错了?
答案 0 :(得分:1)
没有大括号的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没有指针。