• 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("
    ");             //一行完成后,跳出循环,打印一个换行符
            }
        }
    }

     以下,可控制行和列

    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("
    ");            
            }
        }
    }

    二、输出以下图形

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

    方法一(推荐方法):

    思路:
    第一行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("
    ");            
    
            }
        }
    }

    方法二:

    每循环一次,打印数量比上一行多一次。可定义一个变量,记录下循环次数。第一次循环打印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("
    ");            
                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("
    ");            
    
            }
        }
    }

    方法二:第一行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("
    ");            
    
            }
        }
    }

    四、输出以下图形 

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

    思路:

    第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("
    ");            
    
            }
        }
    }

    五、输出以下图形 

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

     思路:

    第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("
    ");            
    
            }
        }
    }

    六、输出以下图形 

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

     思想:

    第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("
    ");
    
            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("
    ");            
    
            }
            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();
            }
        }
    }
  • 相关阅读:
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    微信小程序TodoList
    C语言88案例-找出数列中的最大值和最小值
    C语言88案例-使用指针的指针输出字符串
  • 原文地址:https://www.cnblogs.com/ibelieve618/p/6373216.html
Copyright © 2020-2023  润新知