C# 切换案例
C# 中的 switch 语句是一种强大的控制流机制,允许开发人员根据表达式的值在众多代码块中执行一个代码块。 它对于需要针对单个变量检查多个条件的情况尤其有用。 在开关情况下可以使用操作符对匹配表达式执行各种操作,如比较和逻辑检查。
Layla Porter 在她的视频"C# 入门第 4 部分--运算符和开关"中深入介绍了 C# 编程中的基本概念,重点是运算符和开关情况语句。 本文受她的视频启发,将对她的解释进行分解,并提供视频中的代码片段,以便理解开关情况和操作符。
操作符简介
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。- word = Console.ReadLine(): 使用赋值运算符 (
=) 将用户输入的值(通过Console.ReadLine()获得)赋给word变量。
在此上下文中,赋值运算符用于将变量 word 的值设置为用户在控制台中输入的内容。 赋值运算符是编程中的基本运算符,用于将值存储到变量中,以便在程序执行过程中使用和操作这些值。
算术运算符
C# 中的算术运算符可执行基本的数学运算,如加法、减法、乘法、除法和模数运算。 这些操作符对于任何编程语言来说都是简单明了、必不可少的。 Layla 在视频中没有涉及这些内容,因为这些都是简单的数学运算,其返回值与实际数学问题中的精确值相同。
比较运算符
C# 中的比较运算符允许我们比较数值,并根据这些比较结果做出决策。 Layla 介绍了大于 (>)、小于 (<)、大于或等于 (>=)、小于或等于 (<=)、等于 (==) 和不等于 (!=) 运算符。
在条件逻辑语句中使用比较操作符
在视频中,Layla Porter 深入探讨了如何使用 C# 中的条件逻辑来确定用户提供的单词长度。 她在2:10开始演示如何使用字符串类型的 Length 属性检查字符串长度的 if 语句的基本结构。 该属性返回字符串中的字符数。
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 语句结合条件的概念,使用大于或等于 (>=) 运算符和逻辑与 (&&) 运算符。 综合条件检查单词长度是否至少为 6 个字符但少于 11 个字符。 如果两个条件都满足,程序就会输出 "这是一个中等长度的单词"。这说明了如何将多个条件结合起来,根据单词长度做出更精细的判断。
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 语句来处理不符合前面条件的所有其他情况。 对于 11 个字符或更长的单词,这部分代码会输出 "That's a long word."。 使用 else 语句可确保适当处理前述条件未捕获的任何输入。
else
{
Console.WriteLine("That's a long word.");
}else
{
Console.WriteLine("That's a long word.");
}现在,Layla 运行程序(5:15)并输入一些单词,使用上述条件语句和比较运算符进行分类:

逻辑操作符
逻辑运算符 &&, ||, ! 允许在C#中组合多个条件,以创建更复杂的决策逻辑。 6:24 时,Layla 解释了这些运算符如何共同创建条件语句。
在她的视频中,Layla Porter 介绍了一个小游戏,要求用户从动物列表中找出奇数单词:狗"、"猫 "和 "金鱼"。金鱼 "之所以被认为是 "异数",是因为它生活在水中,不是哺乳动物。 Layla(6:55)首先要求用户使用 Console.ReadLine() 输入选择,然后使用 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();在 7:32 处,Layla 解释了如何使用比较运算符来对照系统和预定义的动物列表检查用户的输入。
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!");
}代码使用不等于 (!=) 运算符检查输入是否不匹配 "dog" 和 "cat"。通过与逻辑与 (&&) 运算符结合,这段代码确保两个条件都必须为真,才能满足这个语句。 如果输入既不是 "dog "也不是 "cat",则必须是 "goldfish",然后程序会输出 "You chose the odd one out!"。
else
{
Console.WriteLine("Better luck next time!");
}else
{
Console.WriteLine("Better luck next time!");
}如果用户的输入不满足这一条件,即输入为 "狗 "或 "猫",则执行 else 块,程序输出:"下次运气会更好!"

Layla(8:30)进一步阐述了理解逻辑运算符在条件语句中的作用的重要性。 与运算符 (&&) 需要两个条件都为真,而或运算符 (||) 只要求一个条件为真。 她(9:05)演示了使用这些运算符如何改变程序的行为,强调了在 C# 中使用逻辑运算符时的细微差别和潜在隐患。 这种解释有助于观众了解如何在程序中有效地使用条件逻辑。
C# 开关案例语句简介
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 解释说,开关语句由多个情况组成,每个情况代表被评估变量的一个可能值或值范围。 在这种情况下,变量是 word.Length。
1.Case < 6:第一种情况是检查单词长度是否小于 6。 如果满足该条件,程序将输出 "That's a short word!",然后使用 break 语句退出开关块。 请记住,案例可以有多个陈述。
2.Case int length when 6 <= length && length < 11:第二种情况更为复杂。 它使用了在 C# 7.0 中引入的模式匹配功能。用 int length 定义情况,后跟一个 when 子句,指定附加条件:长度必须大于或等于6且小于11。如果模式匹配,程序将输出 "That's a medium length word!" 然后退出 switch 块。
3.默认:如果前面的情况都不符合要求,则执行默认情况。 这就像 if-else 结构中的 else 语句。 在这种情况下,程序会输出 "That's a long word!"并退出开关块。
Layla(15:45)强调,使用 switch 语句比 if 语句更有好处,因为它使代码更易读、更易于管理,尤其是在处理多个条件时。 此外,她还提到开关语句可以提高效率,因为 C# 编译器会对其进行不同的优化,使其执行速度更快。
切换表达式(模式匹配)
开关表达式是 C# 中较新的功能,为基于值的简单决策提供了更简洁的语法。 在 Layla Porter 大约 16:25 的视频中,她介绍了一种现代开关语句,称为 C# 中的 "开关表达式 "或 "模式匹配开关"。 这种类型的开关语句直接返回一个值,使代码更加简洁易读。
她(17:00 左右)首先展示了如何使用 switch 表达式语法重写 if-else 语句。 开关表达式不是执行操作,而是根据条件为变量赋值。 例如,这个例子
// 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 => "That's a short word!": 如果
word.Length小于 6,使用小于运算符<返回 "That's a short word!"。- < 11 and >= 6 => "That's a medium length word!": 如果
word.Length在 6 到 10 之间(包括 6 和 10),则使用and来提高可读性,返回 "That's a medium length word!"。
4._ => "That's a long length word!":下划线作为默认情况,如果前面的条件都不满足,则返回 "That's a long length word!"。
Layla 强调,这种语法是现代 C# 功能的一部分,旨在提高可读性和效率。 与传统的 if-else 语句相比,switch 表达式更适合简洁地处理多个条件。
她在 19:30 运行代码,输出结果与 if-else 相同:

结论
Layla Porter 的视频为 C# 编程初学者打下了坚实的基础,涵盖了运算符、条件语句和开关语句等基本概念。 通过跟随她的讲解和示例,初学者可以获得实用的见解,了解如何在 C# 中有效地操作数据和控制程序流程。
通过理解这些基本概念并利用所提供的示例进行练习,C# 新手可以为完成更复杂的编程任务打下坚实的基础。 在她的 YouTube Channel 上查看更多 C# 视频。




