例如这2个例子:
public class for1
{
public static void main(String [] args)
 {
 int i, stars;
 for(stars=1; stars<=9; stars=stars+2)\\写*的宽度
 {
   for(i=1; i<=stars; i++)不知道写的是什么,是高?但是不知道为什么i<=stars?呢
     System.out.print('*');
    System.out.println();
    }
}
}例2:
for(int i=1;i<=5;i++)写的是高度
{
for(int j=0;j<(5-i)*2+1;j++) \\“”的个数
   System.out.print(" ");
   for(int j=0;j<4*i-3;j++)
   System.out.print("*");\\“*”的个数
   System.out.println();
}
}
}
这2个例子先写的各不一样呀

解决方案 »

  1.   

    一般画star使用两个for loop来实现的。
    一般你是怎么画的?先从左到右,再从上到下是不是?
    所以,外面的for loop 是高,里面的for loop是宽。
      

  2.   

    for(i=1; i<=stars; i++)用stars是因为要画三角。
    如果你看程序看不懂出来的output是什么,因为你水平有限,既然有限,就不要嫌麻烦,抄一下程序,跑一跑看看不就知道了?
      

  3.   

    你好,但是第一个是直角三角形,但是他是先确定一行中STARS的个数
    而第二个是等腰三角形,他却先确定的是高度。为什么呢? 我试着画直角三角形先决定它的高度,结果出来的是方形,呵呵,见笑了,我是菜鸟
      

  4.   

    其实例1外面的也是高度,里面的才是宽度。
    for(stars=1; stars<=9; stars=stars+2)
    这里的stars虽然是*的个数,但因为*的个数是逐行+2的,所以他用stars=stars+2,这样确定的是这个循环要执行的次数,也就是*的行数。
    for(i=1; i<=stars; i++)才是真正画*的宽度即个数的
    例1改成
        int lines = 5;
        for (int i = 0; i < lines; i++) {
            for (int j = 0; j < 2 * i + 1; j++)
                System.out.print('*');
            System.out.println();
        }
    看的明白些?