使用 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 循环仅适用于下一条语句(即ifelse)。如果你添加大括号那么你的例子看起来像

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 没有指针。