有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java嵌套For循环为什么这样编写代码,我得到的asterix比println多?

int n = 10;

for(int i = 0; i < n; i++)
  {
      for(int j = 0; j <= i; j++)
      System.out.print("*");
      System.out.println();
  }

问题是,它确实有点难以完成这项任务,我试过这样做,但我不太明白为什么这样写,看起来会有与asterix(*)符号相同数量的println语句。这显然不会形成所需的三角形(它只会形成一条与n一样长的线)。所以,我能理解这一点的唯一方法是,用println语句为初始for循环画出另一个大括号。我想我已经忘记了for循环是如何执行代码的。但有人能帮我解释一下吗

那么代码不是这样写的更好吗

for(int i = 0; i < n; i++) {
   for (int j = 0; j <= i; j++) {            
          System.out.print("*");
        }
        System.out.println();
   }

共 (1) 个答案

  1. # 1 楼答案

    因为内环的主体只是一个语句

    for(int j = 0; j <= i; j++)
          System.out.print("*");
    

    没有括号

    换成

     for(int j = 0; j <= i; j++) { 
          System.out.print("*");
          System.out.println();
     }
    

    甚至你也不需要这样的第二句话

     for(int j = 0; j <= i; j++) { 
          System.out.println("*");
     }