C# - 嵌套循环

C# 嵌套循环

C# 中的嵌套循环是指一个循环嵌套在另一个循环中,其中内层循环在外层循环每次迭代时都会完全执行。以下部分将通过几个示例来说明嵌套循环 -

语法

以下是 C# 嵌套 for 循环 语句的语法 -

for ( init; condition; increment ) {
   for ( init; condition; increment ) {
      statement(s);
   }
   statement(s);
}

以下是 C# 嵌套 while 循环 语句的语法 -

while(condition) {
   while(condition) {
      statement(s);
   }
   statement(s);
}

以下是 C# 嵌套 do...while 循环 语句减去的语法;

do {
   statement(s);
   do {
      statement(s);
   }
   while( condition );
}
while( condition );
需要注意的是,循环嵌套是指可以将任何类型的循环嵌套在任何其他类型的循环中。例如,for 循环可以嵌套在 while 循环中,反之亦然。

嵌套 for 循环

以下程序使用嵌套 for 循环查找 2 到 100 之间的素数 -

using System;
namespace Loops {
   class Program {
      static void Main(string[] args) {
         /* 局部变量定义 */
         int i, j;
         
         for (i = 2; i < 100; i++) {
            for (j = 2; j <= (i / j); j++)
            if ((i % j) == 0) break; // 如果找到因子,则不是素数
            if (j > (i / j)) Console.WriteLine("{0} is prime", i);
         }
         Console.ReadLine();
      }
   }
} 

输出

当编译并执行上述代码时,它会产生以下结果 -

2 is prime
3 is prime
5 is prime
7 is prime
11 is prime
13 is prime
17 is prime
19 is prime
23 is prime
29 is prime
31 is prime
37 is prime
41 is prime
43 is prime
47 is prime
53 is prime
59 is prime
61 is prime
67 is prime
71 is prime
73 is prime
79 is prime
83 is prime
89 is prime
97 is prime

嵌套 while 循环

以下程序使用嵌套 while 循环查找 2 到 100 之间的素数 -

using System;
namespace Loops {
   class Program {
      static void Main(string[] args) {
         int i = 2, j;
         
         // Outer loop
         while (i < 100) {
            j = 2;
            // Inner loop
            while (j <= (i / j)) {
               if ((i % j) == 0)
                  // 如果找到因子,则不是素数
                  break;
               j++;
            }
            if (j > (i / j)) 
               Console.WriteLine("{0} is prime", i);
            i++;
         }
         Console.ReadLine();
      }
   }
}

输出

上述代码生成以下输出 -

2 is prime
3 is prime
5 is prime
7 is prime
11 is prime
13 is prime
17 is prime
19 is prime
23 is prime
29 is prime
31 is prime
37 is prime
41 is prime
43 is prime
47 is prime
53 is prime
59 is prime
61 is prime
67 is prime
71 is prime
73 is prime
79 is prime
83 is prime
89 is prime
97 is prime

嵌套 do while 循环

以下程序使用嵌套的 Do-while 循环来查找 2 到 100 之间的素数 -

using System;
namespace Loops {
   class Program {
      static void Main(string[] args) {
         int i = 2, j;
         
         // 外循环
         do {
            j = 2;
            
            // 内循环
            do {
               if ((i % j) == 0)
                  break; // 如果找到因子,则不是素数
               j++;
            } while (j <= (i / j));

            if (j > (i / j)) 
               Console.WriteLine("{0} is prime", i);

            i++;
         } while (i < 100);

         Console.ReadLine();
      }
   }
}

输出

以下是上述代码的输出 -

2 is prime
3 is prime
5 is prime
7 is prime
11 is prime
13 is prime
17 is prime
19 is prime
23 is prime
29 is prime
31 is prime
37 is prime
41 is prime
43 is prime
47 is prime
53 is prime
59 is prime
61 is prime
67 is prime
71 is prime
73 is prime
79 is prime
83 is prime
89 is prime
97 is prime