程式控制流程

程式控制流程的英文名稱:Flow of Control

我們開發程式時,大多數邏輯都會寫在方法裡;剩餘部分的邏輯,則會放在屬性、運算子或是其他函式成員當中。


控制流程分類

所謂控制流程(flow of control),指的是程式碼的執行走向。

預設情況下,程式會由上往下依序執行每一道敘述。

而流程控制敘述可以改變程式碼預設的執行順序。

控制敘述種類相當多,後續課程會逐一詳細說明。本課先做基礎介紹,帶大家初步認識控制流程。

C# 主要有三大類控制流程:

循序執行是基礎,三類控制流程分別實作分支、迴圈、跳躍邏輯:

  1. 選擇敘述(Selection statements)
  2. 反覆敘述(Iteration statements,迴圈)
  3. 跳躍敘述(Jump statements)

每一種敘述底下又有數種不同寫法:


選擇敘述

主要作用:依據條件選擇執行部分程式碼,同時跳過不需要執行的段落。

  • if — 條件成立時,執行對應區塊程式碼
  • if–else — 二選一執行程式區塊
  • switch — 多重分支比對,從多組程式碼選一組執行

反覆敘述(迴圈)

主要作用:條件符合時,重複執行同一區塊程式碼

  • for — 先判斷條件,再執行迴圈內容
  • while — 先判斷條件,再執行迴圈內容
  • do while — 先執行程式碼,之後才判斷條件
  • foreach — 逐一走訪集合內所有元素,自動重複執行

跳躍敘述

  • break — 直接離開目前所在迴圈
  • continue — 結束本次迴圈、略過後方程式,跳至迴圈尾端並展開下一輪
  • goto — 跳轉至標籤命名的敘述位置
  • return — 結束目前方法,回到呼叫該方法的位置

各位先有初步概念即可,後續課程會深入講解


class Program
{
    static void Main()
    {

        int age = 18;
        if (age >= 18) //條件成立就執行if區塊程式
        {
            Console.WriteLine("你已經成年");
        }

        int score = 85;
        if (score >= 90) //多重條件判斷
        {
            Console.WriteLine("優秀");
        }
        else if (score >= 80) //前一個條件不成立才判斷此條件
        {
            Console.WriteLine("良好");
        }
        else if (score >= 70) //前兩個條件都不成立才判斷此條件
        {
            Console.WriteLine("中等");
        }
        else if (score >= 60) //前三個條件都不成立才判斷此條件
        {
            Console.WriteLine("及格");
        }
        else //所有前述條件皆不成立,執行else區塊,作為預設兜底
        {
            Console.WriteLine("不及格");
        }

        //for迴圈:i由0開始,i小於10時執行迴圈主體,每次迴圈結束i加1
        for (int i = 0; i < 10; i++)
        {
            Console.WriteLine(i);
        }

        int sum = 0;
        while (sum < 100) //sum小於100就持續執行迴圈內容
        {
            sum += 10; //每輪迴圈sum增加10
            Console.WriteLine(sum);
        }

        int count = 5;
        do
        {
            Console.WriteLine("這段程式至少一定會執行一次");
            count++; //每輪迴圈count增加1
        } while (count<5); //就算條件不成立,迴圈內容仍執行一次

        int[] scores = { 90, 80, 70, 60, 50 }; //宣告陣列,內含五個元素
        foreach (var item in scores) //走訪陣列所有元素,依次存入item執行迴圈,直到全部讀取完畢
        {
            Console.WriteLine(item);
        }

    }
}
Code language: JavaScript (javascript)

可自行將以上程式碼複製到 Visual Studio 執行,後續課程會逐一詳細解釋各種敘述。

程式控制流程

Previous:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *