C# 條件陳述式 (Conditional statement) – C# 教學

C# 條件陳述式

C#教學 – C# 條件陳述式

學習C#條件陳述式

前言

當我們談論C#程式語言時,條件陳述式(Conditional Statements)無疑是其中一個至關重要的主題。C#作為一種強大而多功能的程式語言,提供了多種流程控制結構,以使程式能夠在不同的條件下執行不同的程式碼。這種彈性使開發者能夠創建更具靈活性和多功能性的應用程式。

條件陳述式在程式開發中扮演著關鍵的角色,它們讓我們可以根據不同情況和需求來控制程式流程。這包括if陳述式,它讓我們能夠進行基本的條件判斷,以便根據布林表達式的真偽執行不同的程式碼。還有else if陳述,它允許我們處理多個相關的條件,以確保我們的程式能夠應對各種情況。

除此之外,C#還提供了switch case陳述,這是一種更具結構化1的方法,適用於處理多個可能的選項。switch case陳述使程式碼更容易理解和維護,特別適用於處理多個相關選擇。

在這篇文章中,我們將深入探討C#條件陳述式的不同類型,以及它們在實際程式開發中的應用。我們將研究如何運用這些陳述式來解決實際問題,優化程式碼,提高可讀性和可維護性。無論您是初學者還是經驗豐富的開發者,我們相信這篇文章將對您在C#程式開發領域的技能和理解有所助益。請繼續閱讀,一同探索C#條件陳述式的精彩世界。

Outline

  1. 什麼是條件陳述式?
  2. 實際範例 – C# 條件陳述式
  3. 總結
  4. 參考資料
  5. 補充說明
  6. 註解

C# 條件陳述式 – 什麼是條件陳述式?

條件陳述式是一種在程式設計中常用的控制結構,它允許根據特定條件的真假來控制程式的執行流程。條件陳述式是程式中的重要工具,用於根據不同情況執行不同的程式碼。最常見的條件陳述式有三種:if陳述式、else if陳述式和switch陳述式。

  1. if 陳述式:if陳述式(if-statement)用於執行某個程式區塊,只有當特定條件為真時才會執行。如果條件不滿足,則該程式區塊將被忽略。if陳述式為開發者提供了基本的選擇性執行程式碼的能力。
  2. else if 陳述式:else if陳述式(else if-statement)擴展了if陳述式,使您能夠添加多個不同的條件分支。程序將依次檢查這些條件,並執行第一個為真的程式區塊。如果沒有任何條件滿足,則可以使用else部分作為後備。
  3. switch 陳述式:switch陳述式(switch-statement)通常用於處理多個離散的選項。它根據一個表達式的值來選擇要執行的程式區塊,其中每個選項由不同的case分支表示。如果沒有匹配的選項,則可以執行default部分。

條件陳述式使開發者能夠根據不同的情況采取不同的操作,從而實現更具靈活性和智能性的程式邏輯。無論您是初學者還是有經驗的程式設計師,了解和善用條件陳述式都是寫出高效、可讀性高且具有更多功能的程式碼的重要步驟。

實際範例 – C# 條件陳述式

if-陳述式 – C# 條件陳述式

在”C# 條件陳述式”中的if-陳述式是初學者剛開始接觸必學的語法,也是一種最基本的條件語法。以人類語言來描述,就像是”當指定的條件成立情況下,去做某件事情“,那麼這個條件指的是你希望設置的條件,比方說:”當時間到,麻煩出來一下“或是”當網購商品到了,麻煩到超商領取“等等。紅色標示出來的字,就是所謂的條件判斷,藍色標示出來的字,所表達的是要去做的事情。

所以在C#(物件導向語言)中,很多語法的應用都非常像是人類的語言,像是if-statement是非常方便的來使用的。下面是if-statement在C#語言中的使用方式,在”if (Condition)”中Condition就是條件,至於是否成立能夠用Boolean型別(可參考C# 宣告變數)來表示,例如: “if(true)”、”if(x > 0)”、”if(myName == “Jasson”)”等等的方式來進行條件的設置,都是允許的。接下來,假設條件已成立,就是執行下方Block區塊的內容。(Block區塊是指在”{ 我在區塊內 }“內的內容)。下面是一個簡單的if-statement範例:

在上述範例中,如果”Condition”為True,就會執行if程式碼區塊中的程式碼。如果條件為False,程式碼區塊將被跳過不被程序所執行。

else if-陳述式 – C# 條件陳述式

在”C# 條件陳述式”中的else if-陳述式與if-陳述式相似,區別在於它能夠一步步判斷多個條件,比如說當比對地一個條件不滿足,則比對下一組條件,直到條件比對上,否則跳過不執行。所以else if-statement允許開發者增加多個條件,方便在不同的條件下執行不同的程式碼區塊。

以下是一個else if-statement範例:

上述範例可用來根據不同條件成立時,執行不同動作,如果Condition-1為True,將執行第一個程式碼區塊。如果Condition-2為True,將執行第二個程式碼區塊。如果兩者都不為True,將執行else程式碼區塊。

switch case-陳述式 – C# 條件陳述式

在”C# 條件陳述式”中的switch case-陳述式用於根據運算式的值選擇執行不同程式碼區塊的工具。通常用於處理多個選項的選擇(通常選項多於4個項目,會使用switch語法,擁有更加的效率如果條件允許情況下)。

以下是一個switch case-statement範例:

在這裡,switch case-statement能夠根據switch(“OP”)的值執行相應的程式碼區塊,或者在沒有匹配的情況下執行default程式碼區塊。這裡須注意到,在switch case-statement中的case所列出的條件,必須是Compile Time能夠確定好的資料(資料型別),不能夠是可變動的變數,最後在補充說明會提到原因。

4. 總結

C# 條件陳述是C#語言中至關重要的流程控制結構之一,它包括if-statement、else if-statement和switch case-statement…等,這些語句使得程式能夠根據不同的條件執行不同的行動,從而實現更靈活的程式邏輯,這些語句的運用是開發者在撰寫C#程式時的一個關鍵技能。

if陳述是最基本的條件陳述,它允許你根據一個布林表達式的值來執行不同的程式碼塊,這讓你能夠進行單一條件的判斷,並根據結果執行相應的程式邏輯,而當你需要處理多個不同的條件時,可以使用else if陳述,這使得你能夠逐一檢查多個條件,並執行第一個為真的條件所對應的程式碼區塊,另一方面,switch case陳述提供了一種更具結構化的方法,以便根據一個表達式的值進行多重選擇,它類似於if-else if的連續判斷,但更容易閱讀和維護,特別適用於處理多個相關選項的情況。這使得程式碼更具可讀性和可維護性。

掌握C#條件陳述是開發者寫出高質量程式碼的關鍵之一。無論你是新手還是有經驗的開發者,深入理解和熟練運用這些語句都對提高程式碼品質和效率至關重要。經驗豐富的開發者能夠更好地結構程式碼,處理不同的邏輯場景,提高程式的可讀性和可維護性。

如果你有任何關於C#條件陳述的疑問或想法,歡迎透過郵件或留言與我們進一步討論。我們期待與您分享更多關於C#和程式開發的知識。謝謝!

5. 參考資料

  1. Microsoft Docs C# Selection statements – if, if-else, and switch
  2. C# tutorialspoint – if Statement

6. 補充說明

初學者在這需要有個概念,關於if、else陳述式與switch陳述式是完完全全不相同的東西。其一,在if-陳述式、else if-陳述式中,條件是能夠比對兩組或兩組以上的條件,在一個”(區間)”之中的,而switch 陳述式,只能夠單一各各比較,直到成立,則執行程式碼片段。其二,原因最主要是,Assembly寫法和目的不同,下面分別對if陳述式和switch陳述式進行C#和Assembly的比對,說明其不同之處。

if陳述式的Assembly比對

下方是C# if陳述式範例:

下方是Assembly if陳述式範例:

利用cmp指令比較數值,如果相同則繼續執行

switch陳述式Assembly的對比

下方是C# switch陳述式範例:

在上方程式碼中,有三個case標籤:case 1、case 2、case 3。這些case標籤表示了不同的情況,當Value1的值等於1、2或3時,將分別執行相對應的程式碼。

然而,case下面都只有一個break;語句。break語句用於終止switch語句的執行,並跳出switch區塊。這樣做的結果是,無論Value1的值是什麼,當它符合其中一個case條件時,將執行對應的case下的break;,然後立即跳出switch語句,不再執行後續的case。

下方是相對應的Assembly switch-case-statement 範例:

補充說明-總結

在上述兩個範例中從Assembly角度出發,結果就非常明瞭了,對於if-statement和else if-satement來說,是不斷的條件比對,直到與到與預期值相同才繼續執行。然而與switch case-statement不同的是,在switch case-statement的Assembly中,是透過jump的方式,直達目的地並執行目標程式代碼。但是需要注意,在switch case-statement的Assembly中的…(省略部分)是有一定的執行時間的,所以在小數量(通常小於4個)通常會用if/else if-statement來判斷使用,會比switch case-statement來執行的高效快速。相對的,在比對條件數量過多的情況下,通常傾向於用switch case-statement,因為以平均時間執行時間來看switch case-statement在執行時間上不論數量多或寡,都是固定的,而if-statement是浮動的。

註解

  1. 程式結構化,是一種軟體設計方法,旨在使計算機程式的結構更加清晰、易於理解和維護。這種方法強調將程式分解為小的、可管理的模塊或函數,每個模塊執行特定的任務,並且模塊之間的交互關係被嚴格管理。程式結構化的目標是降低複雜性,提高代碼的可讀性,減少錯誤,並方便代碼的維護和擴展。 ↩︎

發表迴響

返回頂端