C# 的流程控制

作品

書籍

課程

程式集

小說集

論文集

散文集

影片集

編輯雜誌

程式人

電子書

JavaScript

計算語言學

微積分

Blender 動畫

C# 語言

系統程式

高等 C 語言

Java

Android

Verilog

Wikidot

R 統計軟體

機率統計

計算機數學

組合語言

人工智慧

開放原始碼

網路資源運用

計算機結構

相關訊息

常用工具

友站連結

在家教育

RSS

最新修改

網頁列表

簡體版

English

簡介

在結構化的程式語言中,流程控制是以判斷 (if, switch) 與迴圈 (for, while) 為主的。C# 也不例外,我們將在本文中介紹 C# 的流程控制語法,包含如何利用條件判斷語法控制程式的分支情況,以及用迴圈語法重複運行某些程式碼。

C# 中的條件判斷語法

C# 的條件判斷以 if 為主,語法完全繼承 C 語言的語法,其語法如下:

if <EXP 1>
  <BLOCK 1>
else if <EXP 2>
  <BLOCK 2>
...
else <EXP K>
  <BLOCK K>

舉例而言,假如我們想要判斷成績變數 score 是否及格,也就是 score 是否到達 60 分以上,則可以用下列語法。

if (score >= 60)
  Console.WriteLine("及格");
else
  Console.WriteLine("不及格");

更進一步的,假如我們想用程式判斷等第,其中 90 分以上為 A,80-90 之間為 B,70-80 之間為 C,70 以下為 D,那麼就可以用下列語法進行判斷。

if (score >=90)
  degree = "A";
else if (score >= 80)
  degree = "B";
else if (score >= 70)
  degree = "C";
else
  degree = "D";

如果我們將上述範例與 if 語句的語法對照起來,可以很清楚的看到 if 語句的語法結構,如以下範例所示。

if (score >=90)            // if <EXP 1>
  degree = "A";            //   <BLOCK 1>
else if (score >= 80)      // else if <EXP 2>
  degree = "B";            //   <BLOCK 2>
else if (score >= 70)      // else if (EXP 3>
  degree = "C";            //   <BLOCK 3>
else                       // else <EXP 4>
  degree = "D";            //   <BLOCK 4>

C# 中的迴圈語法

C# 當中的迴圈語法,包含 for, while, foreach 等,其中的 for 與 while 是由 C 繼承而來的,語法與 C 語言一致。而 foreach 的語法則是新創造的,其使用上比 for 語法更方便。

for 迴圈的語法如下所示,其中的 EXP1 是指定敘述,可以用來設定索引變數的初值,EXP2 是一個判斷條件,用來判斷是否應跳出迴圈,EXP3 則是累加條件,通常用來對索引變數進行累加 (++) 的動作。

for (<EXP1>; <EXP2>; <EXP3>)
  <BLOCK>;

舉例而言,假如我們想計算從 1 加到 100 的結果,就可以利用下列程式,不斷的將索引變數值 i 加入到總和變數 sum 當中,最後 sum 當中所儲存的就會是 1+2+…+100 的結果 5050。

int sum = 0;
for (int i=1; i<=100; i++)
  sum += i;

while 迴圈的語法比 for 迴圈更簡單,其語法如下範例所示,其中的 <EXP> 是一個邏輯判斷式,用來判斷是否應該離開迴圈。在還沒離開之前,會不斷的重複執行 <BLOCK> 區塊。

while (EXP)
  <BLOCK>

同樣的,我們也可以利用 while 迴圈計算從 1 加到 100 的結果,其程式如以下範例所示。

int sum=0;
int i = 1;
while (i<=100) 
{
  sum = sum + i;
  i++;
}

至於 foreach 迴圈,則是針對某個容器結構 (例如陣列) 當中的每個元素都巡迴執行一次,其語法我們將留待未來討論陣列的主題時再行說明。

結語

判斷與迴圈是結構化程式設計的兩大流程控制方法,有效的結合判斷與迴圈,就能產生變化無窮的程式,這正是程式設計精妙的地方,也是程式設計師必須要會的基本能力。

Facebook

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License