CodeGym /課程 /C# SELF /for 迴圈:認識與使用小技巧

for 迴圈:認識與使用小技巧

C# SELF
等級 4, 課堂 2
開放

1. 前言

想像一下,你有個任務:要在螢幕上印出 「哈囉!」 十次。當然啦,你可以寫十行 Console.WriteLine("哈囉!"); —— 不過你現在已經會用 while 迴圈了,這種小事根本難不倒你。

但還有另一種迴圈 —— for,它可以自動重複你要的動作指定次數。而且還會自己幫你數!

來看個經典範例:

for (int i = 0; i < 10; i++)
{
    Console.WriteLine("哈囉!");
}
經典 for 迴圈 —— 印出 "哈囉!" 十次

這段程式在做什麼?它會在螢幕上印出 「哈囉!」 剛好 10 次。完全不用複製貼上,也不用手痠。

2. for 迴圈語法

for 迴圈有三個主要部分,寫在 for 關鍵字後面的括號裡:

for (初始化; 條件; 變化)
{
    // 迴圈主體
}
for 迴圈的通用語法

我們來細看每個元素:

  • 初始化 —— 通常是建立一個計數變數,拿來記錄重複次數(int i = 0)。
  • 條件 —— 每次執行前都會檢查。如果成立就跑迴圈主體,不成立就結束。例如 i < 10。
  • 變化 —— 每次執行完主體後會執行的運算,通常是讓計數器加或減(i++)。

可以畫個流程圖:

3. for 跟 while 的比較

你可能會更懂,如果我說 for 其實就是 while 迴圈的另一種寫法。

我們之前有 while 迴圈:

int i = 0;					// 初始化迴圈變數
while(i < 10)				// 檢查是否繼續
{
    Console.WriteLine(i); 	// 有用的動作(主體)
    i++;					// 計數器加一
}

我們可以把它改寫成 for 迴圈,只要把控制邏輯都搬進去:

for (int i = 0; i < 10; i++)  // 初始化;檢查條件;計數器加一
{
    Console.WriteLine(i);		// 有用的動作(主體)
}

兩種迴圈 的步驟:

  1. 初始化 int i = 0; 只做一次,在迴圈開始前。
  2. 然後檢查條件 i <= 10
  3. 然後執行主體 Console.WriteLine(i);
  4. 接著計數器加一 i++
  5. 然後回到步驟 2。

4. for 迴圈的使用範例

最簡單的例子

來印出 1 到 5:

for (int i = 1; i <= 5; i++)
{
    Console.WriteLine(i);
}

輸出:

1
2
3
4
5

小提醒: 如果你寫 i < 5,最後只會印到 4。

倒數計時

想體驗一下當太空人嗎?來個倒數計時!

for (int i = 5; i > 0; i--)
{
    Console.WriteLine(i);
}
Console.WriteLine("出發囉!");

輸出:

5
4
3
2
1
出發囉!

步長不是 1 的迴圈

你也可以讓計數器每次加的不只 1,可以是任何數字:

for (int i = 0; i <= 10; i += 2)
{
    Console.WriteLine(i);
}
// 會印出:0 2 4 6 8 10

5. for 迴圈的變化型

多個變數的迴圈

有時候同時追蹤兩個變數很方便。比如我們來左右同時印數字:

for (int left = 1, right = 10; left <= 10; left++, right--)
{
    Console.WriteLine($"{left}  {right}");
}

輸出:

1  10
2  9
3  8
...
10  1

無限 for 迴圈

如果你真的很硬派(比如你在寫 IT 永動機),可以寫個「永遠」的 for 迴圈:

for (;;) // 沒有初始化、條件、變化
{
    Console.WriteLine("工作、工作、再工作!");
}
無限 for 迴圈

注意: 這種迴圈只有在主體裡有 break、return 或 throw 才會結束。沒事不要亂用,不然你可能會喚醒古老惡魔 ——「程式沒回應」。

2
任務
C# SELF, 等級 4, 課堂 2
上鎖
2 到 20 的偶數
2 到 20 的偶數
2
任務
C# SELF, 等級 4, 課堂 2
上鎖
倒數計時加訊息
倒數計時加訊息
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION