Java第二讲(由浅到深)

来源:互联网 发布:艾默生电气集团知乎 编辑:程序博客网 时间:2024/05/16 17:46

Java第二讲

打金字塔问题(由浅到深)

 

 

例一:

*           for(int  i=0;i<5;i++)//i控制行

**           {  

***                for(int  j=0;j<5;j++)//j控制输出*

****          {

*****                 System.out.println("*");

               }

              

                      System.out.println();//换行

             }

例二:

         *

       ***

     *****

   *******

  *********

分析:此例用到了行i,列*j,空格k,由于在输出*之前,要用到空格。

即可以写出

          for(int  i=0;i<5;i++)//i控制行

           {  

                For(int  k=0;k=5-i;k++)//为什么是5-i,这需要找规律。

{

 System.out.println(" ");//空格

 

}

          for(int  j=0;j<5;j++)//j控制列

         {

               System.out.println("*");

               }

              

                      System.out.println();//换行

             }

 

 

例三:*

          * *

         *   *

        *     *

      ******

 

  分析:此例同样用到了行i,列*j,空格k

    for(int i=1;i<=5;i++)//定义一个i来控制行

        {

           

            for(int k=1;k<=5-i;k++)//定义一个k来控制空格

            {

            System.out.print(" ");  

            }

            for(j=1;j<2*i;j++)//定义一个j控制*的个数

            {

                if(i==1||i==5)//由于第一行和最后一行是不需要掏空的。

                {

                    System.out.print("*");  

                }

                else

                {

                   if(j==1||j==2*i-1)//思考与金字塔相比,这几行要掏空,要控         

                                 *的输出,则只需要用IF实现。

                    {

                        System.out.print("*");  

                    }

                   else

                    {

                        System.out.print(" ");  

                    }

                }

 

                //1--0;2--1;3--3;4--5

               

            //为什么不在此放k,由于每换一次行才控制空格。 

                            }

            //打一次,换一次行

            System.out.println();

        }

       

    }

 

不知道大家发现没有,例一,例二,例三的难度都是依次增大的。

我们是在实现了简单的例子上,实现难的,这也告诉做事,写程序。我们要化大为小,依次实现。难题是被一步一步攻破的。  

 

原创粉丝点击