以下代码片段有什么区别?

时间:2016-03-21 14:17:39

标签: java for-loop while-loop

我有两个解决方案,它们之间有什么区别?

解决方案1:

public static void main(String[] args) {
    int i, j;
    for (i = 0; i < 5; i++) {
      for (j = 0; j <= i; j++) {
        System.out.println(" * ");
      }
      System.out.println("\n");
    }
  }

解决方案2:

public static void main(String args[]) {
    int num = 0;
    while (num < 5) {
      for (int i = 0; i <= num; i++) {
        System.out.print(" " + "*" + " ");
      }
      System.out.print("\n");
      num++;
    }
  }

两者都打印出不同的结果。任何人都可以解释一下原因吗?

1 个答案:

答案 0 :(得分:6)

好吧,第一个片段在内部循环中使用System.out.println,因此每个字符串都打印在一个单独的行中。第二个片段在内部循环中使用System.out.print,并且仅在内部循环结束后移动到下一行。

此外,第一个代码段在完成内部循环后跳过两行,第二个代码段仅结束当前行(System.out.println("\n");System.out.print("\n");)。

将第一个代码段中的每个println更改为print应该会产生与第二个代码段相同的输出。