javatwo-for外部for循环和两个内部for循环,它们添加到字符串中,而第一个不';我什么也不做 public static void diamondOfAsterisks(整数行){ 字符串diamondStr=“”; 对于(int row=1;row==(numorrows/2+1);row++){ for(int space=numorrows;space=(2*行)-1;星++){ diamondStr+=“*”; } diamondStr+=“\n”; } 对于(int row=numorrows/2;row>=1;row--){ 对于(int space=numorrows;space>row;space--){ diamondStr+=”; } for(int stars=1;stars

javatwo-for外部for循环和两个内部for循环,它们添加到字符串中,而第一个不';我什么也不做 public static void diamondOfAsterisks(整数行){ 字符串diamondStr=“”; 对于(int row=1;row==(numorrows/2+1);row++){ for(int space=numorrows;space=(2*行)-1;星++){ diamondStr+=“*”; } diamondStr+=“\n”; } 对于(int row=numorrows/2;row>=1;row--){ 对于(int space=numorrows;space>row;space--){ diamondStr+=”; } for(int stars=1;stars,java,loops,Java,Loops,在第一个for循环中,执行循环的条件是row==(numorrows/2+1),我认为这是一个错误 如果终止循环的条件是row==(numorrows/2+1),则应将其更改为row No。for循环的语法是for(初始化;终止条件;增量){statements}不,不是,请看这里:,如果它是真的,它将执行for循环OK我明白你的意思,但当我进行此更改时,它似乎运行一个无限循环。在第二个for内部循环中,你的条件也不正确,“stars>=(2*行)-1”如果row=1,将始终计算为true,无论

在第一个for循环中,执行循环的条件是row==(numorrows/2+1),我认为这是一个错误
如果终止循环的条件是row==(numorrows/2+1),则应将其更改为row No。for循环的语法是for(初始化;终止条件;增量){statements}不,不是,请看这里:,如果它是真的,它将执行for循环OK我明白你的意思,但当我进行此更改时,它似乎运行一个无限循环。在第二个for内部循环中,你的条件也不正确,“stars>=(2*行)-1”如果row=1,将始终计算为true,无论值是多少,我现在明白你的意思了,同样的问题出现在第一个for循环中的两个嵌套循环中。不确定我是如何困惑的,因为这远不是我的第一个for循环,但感谢你告诉我我的错误。我会支持你的答案,但我的声誉不高啊,显然。
public static void diamondOfAsterisks(int numOfRows){
   String diamondStr="";

   for (int row = 1; row == (numOfRows/2+1); row++){
       for (int space = numOfRows; space < row; space--){
           diamondStr += " ";
       }
       for (int stars = 1; stars >= (2 * row) - 1; stars++){
           diamondStr+= "*";
       }
       diamondStr+="\n";
    }

   for (int row = numOfRows/2 ; row >= 1; row--){
       for (int space = numOfRows; space > row; space--){
           diamondStr += " ";
       }
       for (int stars = 1; stars <= (2 * row)-1; stars ++){
           diamondStr += "*";
       }
       diamondStr += "\n";
   }
   System.out.print(diamondStr);