程式控制流程的英文名稱:Flow of Control
我們開發程式時,大多數邏輯都會寫在方法裡;剩餘部分的邏輯,則會放在屬性、運算子或是其他函式成員當中。
控制流程分類
所謂控制流程(flow of control),指的是程式碼的執行走向。
預設情況下,程式會由上往下依序執行每一道敘述。
而流程控制敘述可以改變程式碼預設的執行順序。
控制敘述種類相當多,後續課程會逐一詳細說明。本課先做基礎介紹,帶大家初步認識控制流程。
C# 主要有三大類控制流程:
循序執行是基礎,三類控制流程分別實作分支、迴圈、跳躍邏輯:
- 選擇敘述(Selection statements)
- 反覆敘述(Iteration statements,迴圈)
- 跳躍敘述(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 執行,後續課程會逐一詳細解釋各種敘述。
程式控制流程