跳至頁尾內容
Iron Academy Logo
學習C#
學習C#

其他類別

C#分支案例

Layla Porter
20m 21s

C#中的switch語句是一種強大的控制流程機制,允許開發者根據表達式的值執行多個程式碼塊中的一個。 這在需要對單個變數進行多個條件檢查的情況下特別有用。 可以在switch個案中使用操作符來對匹配表達式執行各種操作,例如比較和邏輯檢查。

Layla Porter在她的影片《C# for Beginners part 4 - Operators and Switches》中,深入探討了C#編程的基本概念,重點是操作符和switch case條件語句。 這篇文章受到她影片的啟發,將分解她的解釋,並提供其影片中的程式碼片段來理解switch個案和操作符。

運算子介紹

C#中的運算子對於操作資料、比較數值以及基於個案值和比較進行決策至關重要。 Layla首先解釋了不同型別的運算子:算術運算子、比較運算子和邏輯運算子。

使用Console.ReadLine進行使用者輸入

Layla首先展示如何使用Console.ReadLine()來捕捉使用者輸入。 這種方法從控制台讀取一行輸入,這對於互動式C#應用程式至關重要。

Console.WriteLine("Hello, please write any word:");
string word = Console.ReadLine();
Console.WriteLine("Hello, please write any word:");
string word = Console.ReadLine();

賦值運算子

在上面的程式碼片段中,Layla使用賦值運算子(word中。 以下是分解:

  • string word: 宣告一個名為string

  • word = Console.ReadLine(): 使用賦值運算子(word變數。

在此上下文中,賦值運算子用於將變數word的值設置為使用者在控制台中輸入的內容。 賦值運算子在編程中是基礎性的,因為它用於將值儲存在變數中,使這些值能夠在程式執行期間被使用和操作。

算術運算子

C#中的算術運算子執行基本的數學運算,如加法、減法、乘法、除法和取模。 這些運算子簡單而必不可少,適用於任何編程語言。 Layla在她的影片中沒有涉及這些,因為這些是簡單的數學運算,返回的值與實際數學問題中的值完全相同。

比較運算子

C#中的比較運算子允許我們比較值並根據這些比較進行決策。 Layla介紹了大於(!=)運算子。

在條件邏輯語句中使用比較運算子

在她的影片中,Layla Porter深入探討了在C#中使用條件邏輯來確定使用者提供的單詞的長度。 她在2:10時開始演示if語句的基本結構,以使用字串型別的Length屬性來檢查字串的長度。 此屬性返回字串中的字元數量。

if (word.Length < 6)
{
    Console.WriteLine("That's a short word.");
}
if (word.Length < 6)
{
    Console.WriteLine("That's a short word.");
}

第一個條件檢查使用小於(<)運算子來檢查單詞的長度是否小於六個字元。 如果條件為真,程式輸出"這是一個短單詞"。這部分程式碼幫助有效地將較短的單詞分類。

接下來,在4:00時,Layla Porter介紹了使用else if語句與使用大於或等於(&&)運算子的結合條件。 結合條件檢查單詞長度是否至少為六,但小於十一個字元。 如果兩個條件都滿足,程式輸出"這是一個中等長度的單詞"。這顯示了如何可以組合多個條件來基於單詞長度作出更精細的決定。

else if (word.Length >= 6 && word.Length < 11)
{
    Console.WriteLine("That's a medium length word.");
}
else if (word.Length >= 6 && word.Length < 11)
{
    Console.WriteLine("That's a medium length word.");
}

最後,Layla在4:40時解釋使用else語句來處理不符合之前條件的所有其他情況。 這部分程式碼為長度為十一個字元或更長的單詞輸出"這是一個長單詞"。 使用else語句確保任何未被前面條件捕獲的輸入都得到適當處理。

else
{
    Console.WriteLine("That's a long word.");
}
else
{
    Console.WriteLine("That's a long word.");
}

現在,Layla在5:15時運行程式並輸入一些單詞來使用上述條件語句和比較運算子進行分類:

Csharp Switch Case 1 related to 在條件邏輯語句中使用比較運算子

邏輯運算子

邏輯運算子 &&, ||, ! 允許在C#中組合多個條件以建立更複雜的決策邏輯。 Layla在6:24時解釋了這些運算子如何協同工作以建立條件語句。

在她的影片中,Layla Porter介紹了一個小遊戲,要求使用者從"狗"、"貓"和"金魚"的動物列表中識別出違和的一個。因為金魚生活在水裡而且不是哺乳動物,所以被認為是唯一的。" Layla(6:55)首先要求使用者使用ToLower()方法將輸入轉換為小寫,以避免在比較字串時遇到區分大小寫的問題:

Console.WriteLine("Pick the odd one out - dog, cat, goldfish");
string oddOne = Console.ReadLine().ToLower();
Console.WriteLine("Pick the odd one out - dog, cat, goldfish");
string oddOne = Console.ReadLine().ToLower();

Layla在7:32時解釋了使用比較運算子檢查使用者的輸入是否存在於系統和預定義的動物列表中。

if (oddOne != "dog" && oddOne != "cat")
{
    Console.WriteLine("You chose the odd one out!");
}
if (oddOne != "dog" && oddOne != "cat")
{
    Console.WriteLine("You chose the odd one out!");
}

程式碼使用不等(&&)運算子組合起來,程式碼確保這兩個條件均必須為真,語句才能被滿足。 如果輸入既不是"狗"也不是"貓",那必然是"金魚",程式輸出"您選擇了不同的一個!"

else
{
    Console.WriteLine("Better luck next time!");
}
else
{
    Console.WriteLine("Better luck next time!");
}

如果使用者的輸入不符合此條件,意味著輸入為"狗"或"貓",則進行else塊,程式輸出"下次好運!"

Csharp Switch Case 2 related to 邏輯運算子

Layla(8:30)進一步闡述了理解邏輯運算子在條件語句中如何運作的重要性。 AND運算子(&&)需要兩個條件都為真,而OR運算子(||)只需要一個條件為真。 她(9:05)演示了使用這些運算子如何改變程式的行為,強調在C#中使用邏輯運算子時的細微差別和潛在陷阱。 這說明有助於觀眾理解如何在程式中有效地使用條件邏輯。

C# Switch Case語句介紹

Switch語句提供了一種替代方法來實現C#中的多分支決策執行,通常比多個if-else語句更具可讀性和效率。 在C#中,'case c'被用來在switch語句中指定條件,確保比較在相同型別的值上進行。

在她的影片中(12:38),Layla Porter從使用if-else語句轉變為使用switch語句來確定給定單詞的長度類別。 她解釋說,使用switch語句可以使程式碼更整潔且更高效。

程式碼片段如下所示:

switch (word.Length)
{
    case < 6:
        Console.WriteLine("That's a short word!");
        break;
    case int length when 6 <= length && length < 11:
        Console.WriteLine("That's a medium length word!");
        break;
    default:
        Console.WriteLine("That's a long word!");
        break;
}
switch (word.Length)
{
    case < 6:
        Console.WriteLine("That's a short word!");
        break;
    case int length when 6 <= length && length < 11:
        Console.WriteLine("That's a medium length word!");
        break;
    default:
        Console.WriteLine("That's a long word!");
        break;
}

Layla解釋說switch語句由多個個案組成,每個個案代表對正在評估的變數的可能值或值範圍。 在這種情況下,變數是word.Length

  1. Case < 6: 第一個個案檢查單詞的長度是否小於6。如果此條件得到滿足,程式輸出"這是一個短單詞!"然後使用break語句退出switch塊。 請記住,case可以包含多個語句。

  2. Case int length when 6 <= length && length < 11: 第二個個案更加複雜。 它使用在C# 7.0中引入的模式匹配功能。該個案以int length定義,後接when子句,指明附加條件:長度必須大於或等於6且小於11。如果模式匹配,程式輸出"這是一個中等長度的單詞!"然後退出switch塊。

  3. Default: 如果前面的個案均不滿足,則執行預設個案。 這就像在if-else結構中的else語句。 在這種情況下,程式輸出"這是一個長單詞!"然後退出switch塊。

Layla(15:45)強調,使用switch語句而非if語句是有益的,因為它能使碼更有可讀性和更易於管理,尤其是在處理多個條件時。 此外,她提到switch語句更高效,因為C#編譯器對其進行了不同的優化,使其執行速度更快。

Switch表達式(模式匹配)

Switch表達式是C#中的一個新功能,提供了一種更簡潔的語法來進行基於值的簡單決策。 在Layla Porter的影片中大約16:25時,她介紹了一個被稱為"switch表達式"或C#中的"模式匹配switch"的現代switch語句。 這種型別的switch語句直接返回一個值,使程式碼更簡潔並易於閱讀。

她(大約在17:00)開始展示如何使用switch表達式語法重寫if-else語句。 與執行操作相反,switch表達式根據條件給變數賦值。 例如,這個例子:

// Example of Switch Expression
string message = word.Length switch
{
    < 6 => "That's a short word!",
    < 11 and >= 6 => "That's a medium length word!",
    _ => "That's a long length word!"
};

Console.WriteLine(message);
// Example of Switch Expression
string message = word.Length switch
{
    < 6 => "That's a short word!",
    < 11 and >= 6 => "That's a medium length word!",
    _ => "That's a long length word!"
};

Console.WriteLine(message);

Layla(17:31)解釋了上面程式碼的內容:

  1. String message = word.Length switch: 初始化一個字串變數message並根據word.Length開始一個switch表達式。

  2. < 6 => "這是一個短單詞!": 如果word.Length小於6,它返回"這是一個短單詞!", 使用小於操作符<

  3. < 11 and >= 6 => "這是一個中等長度的單詞!": 如果and以提高可讀性。

  4. _ => "這是一個長單詞!": 下劃線作為預設個案返回"這是一個長單詞!"如果沒有滿足前面的條件。

Layla強調此語法是現代C#功能的一部分,旨在提高可讀性和效率。 相比傳統的if-else語句,switch表達式在處理多個條件時更偏好於簡潔的寫法。

她在19:30時運行程式碼,輸出與if-else相同。

Csharp Switch Case 3 related to Switch表達式(模式匹配)

結論

Layla Porter的影片為C#編程的新手提供了堅實的基礎,涵蓋了基本概念如運算子、條件語句和switch語句。 通過跟隨她的解釋和範例,新手可以獲得實際的洞察,了解如何在C#中有效地操作資料和控制程式流程。

通過理解這些基礎概念並練習所提供的範例,C#的新手可以為更複雜的編程任務打下堅實的基礎。 在她的YouTube Channel上查看更多C#影片。

Hero Worlddot related to C#分支案例
Hero Affiliate related to C#分支案例

分享您所愛以賺取更多報酬

您是否為使用 .NET、C#、Java、Python 或 Node.js 的開發者建立內容?將您的專業知識轉化為額外收入!

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話