for語句輸出圖形


一、輸出以下圖形

********
********
********
********

 用for...for...嵌套循環,內循環控制每一行的個數(即列數),外循環控制行數

class ForDraw
{
    public static void main(String[] args)
    {
        for (int i=1;i<=4 ;i++ )                //外循環,控制行數
        {
            for (int j=1;j<=8 ;j++ )            //內循環,控制每行打印*的個數。j=1;j<=8,即8個
            {
                System.out.print("*");            
            }
            System.out.print("\n");             //一行完成后,跳出循環,打印一個換行符
        }
    }
}

 以下,可控制行和列

class ForDraw
{
    public static void main(String[] args)
    {
        int lay=5;      //變量lay控制行
        int col=12;    //變量col控制列
        for (int i=1;i<=lay ;i++ )                
        {
            for (int j=1;j<=col ;j++ )            
            {
                System.out.print("*");            
            }
            System.out.print("\n");            
        }
    }
}

 

 

二、輸出以下圖形

*
**
***
****
*****
******
*******
********

方法一(推薦方法):

思路:
第一行1個、第二行2個。。。。說明每行打印*數與行號一樣。

class ForDraw
{
    public static void main(String[] args)
    {
        for (int i=1;i<=8 ;i++ )            //控制行數。
        {
            for (int j=0;j<=i ;j++ )        //控制每行*數。循環條件是j<=i,即每行*最大數即行號。
            {
                System.out.print("*");
            }
            System.out.print("\n");            

        }
    }
}

 

方法二:

每循環一次,打印數量比上一行多一次。可定義一個變量,記錄下循環次數。第一次循環打印1個*,第次循環打印2個*。

class ForDraw
{
    public static void main(String[] args)
    {
        int count=1;                        //記錄循環次數。
        for (int i=1;i<=8 ;i++ )            //控制行數。
        {
            for (int j=0;j<count ;j++ )        //控制每行*數。
            {
                System.out.print("*");
            }
            System.out.print("\n");            
            count++;
        }
    }
}

 

 三、輸出以下圖形

********
*******
******
*****
****
***
**
*

方法一(推薦):

思路:第一行8個、第二行7個……即最多打印8個,第一行循環8次,即1-8;第二行循環7次,即2-8,以此類推

class ForDraw
{
    public static void main(String[] args)
    {
        for (int i=1;i<=8 ;i++ )            //控制行數。
        {
            for (int j=i;j<=8 ;j++ )        //控制每行*數。循環條件是j=i;j<=8,即每行數量循環次數。
            {
                System.out.print("*");
            }
            System.out.print("\n");            

        }
    }
}

 

方法二:第一行8個、第二行7個……即最多打印8個,第一行循環8次,即1-8;第二行循環7次,即1-7,以此類推

class ForDraw
{
    public static void main(String[] args)
    {
        for (int i=1;i<=8 ;i++ )            //控制行數。
        {
            for (int j=0;j<=(8-i) ;j++ )    //控制每行*數。循環條件是j=i;j<=8,即每行數量循環次數。
            {
                System.out.print("*");
            }
            System.out.print("\n");            

        }
    }
}

 

 

 

四、輸出以下圖形 

        *
      **
     ***
   ****
  *****
******

思路:

第1行實際上是打印5個空格和1個*;第1行實際上是打印4個空格和2個*……以此類推

class ForDraw
{
    public static void main(String[] args)
    {
        for (int i=1;i<=6 ;i++ )            //控制行數。
        {
            for (int j=i;j<=5 ;j++ )        //控制空格的輸出。第一行5個空,第二行4個空,以此類推
            {
                System.out.print(" ");
            }
            for (int j=1;j<=i ;j++ )        //控制*的輸出。第一行1個*,第二行2個*,以此類推。
            {
                System.out.print("*");
            }
            System.out.print("\n");            

        }
    }
}

 

五、輸出以下圖形 

    *
   ***
  *****
 *******
*********

 思路:

第1行實際上是打印4個空格,1個*;第2行實際上是打印3個空格,3個*……*個數是行號*2-1

class ForDraw
{
    public static void main(String[] args)
    {
        for (int i=1;i<=5 ;i++ )            //控制行數。
        {
            for (int j=i;j<=4 ;j++ )        //控制空格的輸出。第一行4個空,第二行5個空,以此類推,共4行
            {
                System.out.print(" ");
            }
            for (int j=1;j<=i*2-1 ;j++ )        //控制*的輸出。第一行1個*,第二行2個*,以此類推,即行號*2-1
            {
                System.out.print("*");
            }
            System.out.print("\n");            

        }
    }
}

 

 

六、輸出以下圖形 

     *
   *   *
  *      *
 *         *
*********

 思想:

第1行和最后一行單獨控制

其它幾行,用for...for...嵌套循環來控制。

class ForDraw
{
    public static void main(String[] args)
    {
        for (int i=1;i<=4 ;i++ )            //控制第一行,打印4個空格
        {
            System.out.print(" ");
        }
        System.out.print("*");              //第一行4個空格之后,打印一個*
        System.out.print("\n");

        for (int i=1;i<=3 ;i++ )            //控制行數。
        {
            for (int j=i;j<=3 ;j++ )        //控制空格的輸出。第一行3個空,第二行2個空,以此類推,共3行
            {
                System.out.print(" ");
            }
            System.out.print("*");          //空格后輸出一個*
            for (int j=1;j<=i*2-1 ;j++ )    //控制空格的輸出。    
            {
                System.out.print(" ");
            }
            System.out.print("*");          //空格后輸出一個*
            System.out.print("\n");            

        }
        for (int i=1;i<=9 ;i++ )            //控制最后一行
        {
            System.out.print("*");
        }
    }
}

 

方法二(推薦此方法):

思路:

先打印三角形前面的空格,再打印三角形

三角形中,第一行和最后一行全是*,先打印。

三角形中,其余各行中,第一個和最后一個字符是*,其余是空格。

class ForDraw
{
    public static void main(String[] args)
    {
        int lay=5;                    //層數5層
        for (int i=1;i<=lay ;i++ )    //控制5層循環。i變量控制層數。
        {
            //以下控制三角形前面的空格打印,1--4  2--3  3--2。j用一次for循環就釋放。
            for (int j=1;j<=lay-i ;j++ )
            {
                System.out.print(" ");
            }
            //以下控制*打印
            //1--1  2--3  3--5
            //其余2個,最后一行全是。k變量用來控制每一行的*數量。
            for (int k=1;k<=i*2-1 ;k++ )
            {
                //第一層和最后一層,全打*。涉及到層數,用i變量。
                if (i==1 | i==lay)
                {
                    System.out.print("*");
                }else
                {
                    //第一個和最后一個打*,其余打空格。涉及到每一層的*個數,用k變量。
                    if (k==1 |k==i*2-1)
                    {
                        System.out.print("*");
                    }
                    else
                    {
                        System.out.print(" ");
                    }
                }
            }
            System.out.println();
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM