public class for15{
public static void main(String[] args){
for(int a=1;a<=5;a++){
for(int b=1;b<=a;b++)
System.out.print('★');
System.out.println();
}
}
}
结果是

★★
★★★
★★★★
★★★★★
对此很疑惑,我是刚开始学JAVA的,自学到这,对能输出多个★很是疑惑,所以请各位把这个程序流程和原理说一下,尽量说的简单一些,谢谢

解决方案 »

  1.   

    就是简单的循环嘛,呵呵.我给你注释了,希望可以帮到你,我也才学.public class for15

    public static void main(String[] args)

    for(int a=1;a <=5;a++)  //控制输出行数.
    {   
    for(int b=1;b <=a;b++) //控制每行输出个数.
    System.out.print('★'); //给出输出什么字符.
    System.out.println();  //换行.
    }

    }第一个循环.a控制只输出1-5行.嵌套了第二个循环,控制第a行做a次第二个for内的语句.
    第二个循环体每执行一次,输出一个五角星.第二个for做完之后,第a行就输出了a个五角星了,然后换行,由第一个循环控制做下一次循环.
      

  2.   

    这个跟java没关系吧 你是不是其他语言也没学过 这个看不懂 估计排序的时候 两个数据交换也要理解好一会 
      

  3.   

    Java code 
    public class for15 
    {  
    public static void main(String[] args) 
    {  
    for(int a=1;a  <=5;a++)  //控制输出行数. 
    {    
    for(int b=1;b  <=a;b++) //控制每行输出个数. 
    System.out.print('★'); //给出输出什么字符. 
    System.out.println();  //换行. 

    }  

    好吧,我再说仔细点啦.
    a赋初值1,符合循环判断条件(判断完后,循环递增a++,循环体执行完回来a=2),做第一个for的循环体.
    b赋初值1(此时a=1),符合循环判断条件(b++,循环体执行完后b=2),做第二个for的循环体.
    System.out.print('*');输出一个*.此时,第二个循环做完,b++,此时,b=2;
    此时返回到第二个循环判断条件b<=a处,由于此时a=1,b=2,所以跳出第二个for循环.
    System.out.println();换行.到此,第一个for的第一次循环执行完,a++,a=2;
    a做第一个循环判断.2<=5成立,做循环体操作.
    b第二次初始化为1,此时a=2,b=1,循环判断条件为b<=a,所以这一次第二个循环可以做两次,也就是输出两个*.
    .
    .
    .
    后面就是一样的分析方法啦,如果还不明白,那我就没办法了,你可以问一下老师.因为我也才学,讲不太清楚,呵呵.
      

  4.   

    从1开始,
    <=1的有1个
    <=2的有2个
    <=3的有3个
    <=4的有4个
    <=5的有5个
    整数
      

  5.   


    当执行完一次内循环时,跳出执行外循环 ,此时a+1。
    在进入内循环时,b被初始化,b=1.
    也就是说在循环最开始时候变量需要被初始化。
      

  6.   

    涉及循环控制的问题,这个我可以解释下:
        
        当a=2时语句进入大括号{}, b<=a(此时a=2) b初值为1,执行一次System.out.print('★');语句,打印出一个*;此时b++变为2仍然满足条件b<=a(此时a=2),所以再次执行语句System.out.print('★');,打印出第二个*;此时b++变为3,不满足b<=a(此时a=2)了,于是跳出for(int b=1;b <=a;b++)System.out.print('★'); ,执行System.out.println();,换行!  a++变为3,当a=3,4,5时,以此类推...
       
        希望这样将你能明白。
      

  7.   

    补充一点:public class for15

        public static void main(String[] args){ 
        for(int a=1;a <=5;a++){ 
           for(int b=1;b <=a;b++) 
               System.out.print('★'); 
           System.out.println();
     



    改为:public class for15

         public static void main(String[] args){ 
         for(int a=1;a <=5;a++)
             for(int b=1;b <=a;b++)  
                  System.out.print('★'); 
                  System.out.println();



    } 那么结果就变为:










      同是注意下绿色字的缩进排版,是有讲究的!
      

  8.   

    public class for15{ 
       public static void main(String[] args){ 
         for(int a=1;a <=5;a++){ 
            for(int b=1;b <=a;b++)//当这个循环没有大括号括起来的时候,它只控制后面一行,也就是打五角星的那一行
               System.out.print('★'); 
            System.out.println(); 
         } 
       } 

    下面这个清晰点,老师因该教过,新手写代码最好书写规范,要不自己都会看不懂.
    public class for15{ 
       public static void main(String[] args){ 
         for(int a=1;a <=5;a++){ 
            for(int b=1;b <=a;b{
               System.out.print('★'); 
            }
            System.out.println(); 
         } 
       } 
      

  9.   

    public class for15{ 
       public static void main(String[] args){ 
         for(int a=1;a <=5;a++){ 
            for(int b=1;b <=a;b{  //第4行
               System.out.print('★'); 
            }           //第6行
            System.out.println(); 
         } 
       } 
    } 程序到了第6行,不是直接往下走,而是直接跳回第4行重新执行循环?有原因吗?
      

  10.   


    public class for15{ 
      public static void main(String[] args){ 
        for(int a=1;a <=5;a++){ 
            for(int b=1;b <=a;b++) 
                System.out.print('★'); 
        System.out.println(); 
        } 
      } 
    }首先,作为一个新手学习java,需要将代码格式化,不仅仅是为了自己方便,
    也是为了增加程序的可读性,如上面的例子。
    再就是如何解释上面的代码:
    for循环是这样来划分的
    for(int i = 0; i< 6; i++){
    代码
    }
    如果没有{}来划分,那么for循环执行的是下面的语句
    例子中是
    for(int b=1;b <=a;b++) 
                System.out.print('★'); 
    也就是说 for(int a=1;a <=5;a++){}控制的是几行
    for(int b=1;b <=a;b++) 
                System.out.print('★'); 
    控制的事每行输出多少个★
      

  11.   

    楼主,我估计你是不懂 system.out.print不换行吧。
    还有第2个for,是b<a,取决于第1个for的次数。
    所以是第N行的话,就print N次,但是第2个for不换行。
    这样应该清楚了吧?
      

  12.   

    public class for15

        public static void main(String[] args)
        { 
            for(int a=1;a <=5;a++)
            { 
                for(int b=1;b <=a;b++)
                { 
                    System.out.print('★'); 
                    System.out.println(); 
                } 
            } 
        }
    }这样是不是会明的了?
      

  13.   

    我开始在C循环的时候也很晕,画几个图就好了
    外层+内层画就OK了。
    看到大家都这么热心,我已经看到我的希望了。