首页 > 代码库 > C# for循环的嵌套 作用域

C# for循环的嵌套 作用域

for()

{   循环体可以套无数个for循环

}

比如:for()

{

     for()

    {

         for()

         {... ...这里面可以镶嵌无数个for循环}

     }

}

也可以这样

 for()

{

   for()

   {}

   ... ...

   for()

    {}

}

 

作用域  循环外面的变量/值可以用到循环里面赋值   循环里面不可以用到循环外面赋值

if也是   {}外面变量/值可以用到里面赋值  {}里面的变量不可以到外面赋值

 

   打三角形

图一


★★
★★★
★★★★
★★★★★

  for (int i = 1; i <= 5; i++)
            {
                for(int j=1;j<=i;j++)       每行要循环多少次
                {Console.Write("");}  
                Console.WriteLine();   j循环完了 自动换行
            }
            Console.ReadLine();

图二

★★★★★
★★★★
★★★
★★

 for (int i = 1; i <= 5; i++)
            {
                for(int j=1;j<=6-i;j++)
                {Console.Write("");}
                Console.WriteLine();
            }
            Console.ReadLine();

图三

            ★
         ★★
      ★★★
   ★★★★
★★★★★

思路:就是把左边上部分当成第二张图的三角形    就是把★改成空格

  for (int i = 1; i <= 5; i++)
            {
                for(int j=1;j<=5-i;j++)
                {Console.Write("  ");}
                for (int k = 1; k <= i; k++)
                { Console.Write(""); }

                    Console.WriteLine();
            }
            Console.ReadLine();

显示是

技术分享

图四

★★★★★
 ★★★★
  ★★★
   ★★
    ★

思路和上面的一样

            for (int i = 1; i <= 5; i++)
            {
                for(int j=1;j<=i-1;j++)
                {Console.Write("  ");}
                for (int k = 1; k <=6-i; k++)
                { Console.Write(""); }

                    Console.WriteLine();
            }
            Console.ReadLine();

显示是

技术分享

图五

         ★
   ★★★
  ★★★★★
 ★★★★★★★
★★★★★★★★★

思路是   左边直三角形(和图2类似)加三角形 (个数是2*行数-1)

 for (int i = 1; i <= 5; i++)
            {
                for(int j=1;j<=5-i;j++)
                {Console.Write("  ");}
                for (int k = 1; k <=2*i-1; k++)
                { Console.Write(""); }

                    Console.WriteLine();
            }
            Console.ReadLine();

显示是

技术分享

图六
★★★★★★★★★
 ★★★★★★★
  ★★★★★
   ★★★
    ★

思路是 先空白处   在计算星星    每行的星星10-2*行数+1

  for (int i = 1; i <= 5; i++)
            {
                for(int j=1;j<i;j++)
                {Console.Write("  ");}
                for (int k = 1; k <=10-2*i+1; k++)
                { Console.Write(""); }

                    Console.WriteLine();
            }
            Console.ReadLine();

显示是

技术分享

图七

      ★
   ★★★
  ★★★★★
 ★★★★★★★
★★★★★★★★★
 ★★★★★★★
  ★★★★★
   ★★★
    ★

思路是  先打上半部分再打下半部分

for (int i = 1; i <= 9; i++)
            {
                if (i <= 5)
                {
                    for (int j = 1; j <= 5 - i; j++)
                    { Console.Write("  "); }
                    for (int k = 1; k <= 2 * i - 1; k++)
                    { Console.Write(""); }
                }                                                     上半部分的内容
                else
                {
                    for (int j = 1; j <=i-5; j++)
                    { Console.Write("  "); }
                    for (int k = 1; k <=19-2*i; k++)
                    { Console.Write(""); }
                }                                                   下半部分的内容
                    Console.WriteLine();       
            }
            Console.ReadLine();

练习题:

请用户输入一个奇数,用奇数打出一个菱形

 

自己认真做一个

 

C# for循环的嵌套 作用域