C# 循環語句:while,for,foreach,do while,break,continue,嵌套循環,無限循環(學習心得 10)

滿足一定條件下,多次執行同一塊代碼。

一、循環類型

1.1 while 循環

語法:

while(condition)
{
   statement(s);
}

condition 可以是任意的表達式,當爲任意非零值時都爲真。

例:

using System;

namespace Loops
{
   
    class Program
    {
        static void Main(string[] args)
        {
            /* 局部變量定義 */
            int a = 10;

            /* while 循環執行 */
            while (a < 12)
            {
                Console.WriteLine("a 的值: {0}", a);
                a++;
            }
            Console.ReadLine();
        }
    }
}

運行結果:

a 的值: 10
a 的值: 11

1.2 for/foreach 循環

語法:

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

例:

using System;

namespace Loops
{
   
    class Program
    {
        static void Main(string[] args)
        {
            /* for 循環執行 */
            for (int a = 10; a < 12; a = a + 1)
            {
                Console.WriteLine("a 的值: {0}", a);
            }
            Console.ReadLine();
        }
    }
}

運行結果:

a 的值: 10
a 的值: 11

foreach 循環:迭代數組/集合對象。

例:

namespace ForEachTest
{
    class ForEachTest
    {
        static void Main(string[] args)
        {
            int[] fibarray = new int[] { 0, 1, 1, 2, 3 };
            foreach (int element in fibarray)
            {
                System.Console.WriteLine(element);
            }
            System.Console.WriteLine();


            // 類似 foreach 循環
            for (int i = 0; i < fibarray.Length; i++)
            {
                System.Console.WriteLine(fibarray[i]);
            }
            System.Console.WriteLine();


            // 設置集合中元素的計算器
            int count = 0;
            foreach (int element in fibarray)
            {
                count += 1;
                System.Console.WriteLine("Element #{0}: {1}", count, element);
            }
            System.Console.WriteLine("Number of elements in the array: {0}", count);
        }
    }
}

運行結果:

0
1
1
2
3

0
1
1
2
3

Element #1: 0
Element #2: 1
Element #3: 1
Element #4: 2
Element #5: 3
Number of elements in the array: 5

1.3 do while 循環

爲尾部進行條件檢查。

確保循環至少執行一次。

語法:

do
{
   statement(s);

}while( condition );

例:

using System;

namespace Loops
{
   
    class Program
    {
        static void Main(string[] args)
        {
            /* 局部變量定義 */
            int a = 10;

            /* do 循環執行 */
            do
            {
               Console.WriteLine("a 的值: {0}", a);
                a = a + 1;
            } while (a < 13);

            Console.ReadLine();
        }
    }
}

運行結果:

a 的值: 10
a 的值: 11
a 的值: 12

1.4 嵌套循環

嵌套 for 循環語法:

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

嵌套 while 循環語法:

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

嵌套 do while 循環語法:

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

}while( condition );

例:尋找2~100中的質數。

質數又稱素數。

一個大於1的自然數,除了1和它自身外,不能被其他自然數整除的數叫做質數。

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++)
                    if ((i % j) == 0) break; // 如果找到,則不是質數
                if (j >= i )
                    Console.WriteLine("{0} 是質數", i);
            }

            Console.ReadLine();
        }
    }
}

運行結果:

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

二、循環控制語句

2.1 break

兩種用法:

  • 循環體內 break,循環終止。
  • switch 中 break,終止一個 case。
  • 如果是循環嵌套,break 停止最內層循環。

2.2 continue

用法:

  • 跳出當前循環,進入下一次循環。
  • for 循環,跳到執行條件測試和循環增量。
  • while 和 do while 循環,跳到條件測試。

例:

using System;

namespace Loops
{
   
    class Program
    {
        static void Main(string[] args)
        {
            /* 局部變量定義 */
            int a = 10;

            /* do 循環執行 */
            do
            {
                if (a == 15)
                {
                    /* 跳過迭代 */
                    a = a + 1;
                    continue;
                }
                Console.WriteLine("a 的值: {0}", a);
                a++;

            } while (a < 20);
 
            Console.ReadLine();
        }
    }
}

運行結果:

a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 16
a 的值: 17
a 的值: 18
a 的值: 19

可見其中跳過了一次 a=15 的迭代。

三、無限循環

條件永遠爲真,則無限循環。

例:

using System;

namespace Loops
{
   
    class Program
    {
        static void Main(string[] args)
        {
            for (; ; )
            {
                Console.WriteLine("Hey! I am Trapped");
            }
 
        }
    }
}

或者用 while 也行:

using System;

namespace LoopsInfi
{
    class Program
    {
        static void Main(string[] args)
        {
            while(true)
            {
                Console.WriteLine("Hey! I am Trapped");
            }

        }
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章