使用For循环程序片段跟踪指针

时间:2015-01-01 23:02:40

标签: 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来进行。我错了?

1 个答案:

答案 0 :(得分:1)

没有大括号的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没有指针。