C# 中的交換案例
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運行程序並輸入一些單詞,為其分類使用上述條件語句和比較運算符:

邏輯運算符
邏輯運算符 &&, ||, ! 允許在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塊,程序會輸出"下次再試吧!"

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語句由多個case組成,每個case代表正在評估的變量的可能值或值範圍。 在這種情況下,變量是word.Length。
-
Case < 6:第一個case檢查單詞的長度是否小於6。如果條件滿足,程序輸出"這是一個短單詞!"然後使用break語句退出switch塊。 記住case可以包含多個語句。
-
Case int length when 6 <= length && length < 11:第二個case更為複雜。 它使用C# 7.0中引入的模式匹配功能。該case定義為
int length,後接when子句指定額外條件:長度必須大於或等於6且小於11。如果模式匹配成功,程序輸出"這是一個中等長度的單詞!"然後退出switch塊。 - Default:如果未滿足之前的任何case,將執行default case。 這類似於if-else結構中的else語句。 在此情況下,程序輸出"這是一個長單詞!"然後退出switch塊。
Layla(15:45)強調,相較於if語句,使用switch語句可能更有好處,因為它使代碼更具可讀性和更易於管理,特別是當面對多個條件時。 此外,她提到switch語句可能更高效,因為C#編譯器對其進行不同的優化,使其執行速度更快。
Switch表達式(模式匹配)
Switch表達式是C#中的一項新功能,為基於簡單值的決策提供了一個更為簡潔的語法。 在Layla Porter的影片中約16:25,她介紹了一種現代的switch語句,稱為'表達式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)說明了上述代碼:
-
String message = word.Length switch:初始化一個字符串變量message,並基於
word.Length開始switch表達式。 -
< 6 => "這是一個短單詞!":如果
<返回"這是一個短單詞!"。 -
< 11 和 >= 6 => "這是一個中等長度的單詞!":如果
and為可讀性返回"這是一個中等長度的單詞!"。 - _ => "這是一個長單詞!":下劃線作為默認情況,如果不滿之前的條件則返回"這是一個長單詞!"。
Layla強調,這種語法是現代C#特性的一部分,旨在提高可讀性和效率。 在處理多個條件時,使用switch表達式比傳統的if-else語句更受青睞,因為它更加簡潔。
她在19:30運行代碼,輸出與if-else的相同:

結論
Layla Porter的影片為C#編程初學者提供了一個堅實的基礎,涵蓋運算符、條件語句和switch語句等基礎概念。 通過遵循她的解釋和例子,初學者可以深入了解如何在C#中有效地操作數據和控制程序流程。
通過理解這些基本概念並練習提供的例子,新手在C#中可以為更複雜的編程任務打下堅實的基礎。 在她的YouTube頻道查看更多C#影片。



