前言
先前我们已经学了if语句,知道了他有一个相似的兄弟Switch,那我们就以他们的区别来进入本节的学习。
Switch和if都是用来控制程序的流程的条件语句,但是它们有一些区别。
-
语法结构:Switch语句由一个或多个case标签和一个可选的默认标签组成,每个case标签后面是要执行的语句序列。if语句只有一个条件和一个或多个要执行的语句。
-
判断条件:Switch语句通常用于多个离散的值的比较,而if语句通常用于比较表达式的真假。
-
多条件处理:Switch语句可以处理多个值的情况,每个case标签对应一个值。if语句可以处理多个条件,每个条件之间使用逻辑运算符连接。
-
可读性:当处理多个离散的值时,Switch语句的可读性比if语句要好。在这种情况下,使用Switch语句可以更清晰地表达代码的意图。
-
条件复杂性:if语句可以包含复杂的条件表达式和逻辑操作,可以满足更复杂的条件。Switch语句只能处理离散的值,无法处理复杂的条件。
总的来说,如果只需进行简单的条件判断,if语句足够满足需求。而当需要处理多个离散的值时,或者需要提高代码的可读性时,Switch语句更为适合。
tips:switch一般是配合枚举一起使用的,至于枚举是什么,你可以理解成是一种修缮代码的方式。而为什么会配合使用的原因,我们到后面学习了枚举后我们会进一步进行讲解。
1.作用:产生分支
2.基本语法
switch(变量)
{
//变量等于一下常量时
case 常量1://变量等于常量一时执行的逻辑
代码逻辑
break;
case 常量2://变量等于常量二时执行的逻辑
代码逻辑
break;
default://如果都不满足执行以下代码
代码逻辑
break;
}
其中default部分是可以省略的,常量部分也可以自己定义,只要当变量等于常量的时候,就会执行相应代码部分。
3.例子
我们从if语句开始,只要涉及到讲解代码方面的,博主都会尽量给一个例子来让大家更好理解,因为先前入门多是概念性问题,理解就行,但是到了这些代码逻辑方面,我个人觉得还是进例子聊大家清楚一些。
下面是一个使用Switch语句的C#例子,用于根据学生的分数对其成绩进行分类,也是一个很经典的题目:
using System;
class Program
{
static void Main(string[] args)
{
int score;
Console.Write("请输入学生的分数:");
score = Convert.ToInt32(Console.ReadLine());
string grade;
switch (score)
{
case int n when (n >= 90 && n <= 100):
grade = "优秀";
break;
case int n when (n >= 80 && n < 90):
grade = "良好";
break;
case int n when (n >= 70 && n < 80):
grade = "中等";
break;
case int n when (n >= 60 && n < 70):
grade = "及格";
break;
default:
grade = "不及格";
break;
}
Console.WriteLine("学生的成绩分类为:" + grade);
}
}
在这个例子中,我们首先通过Console.ReadLine()
方法从用户输入中获取学生的分数,并将其转换为整数。然后,使用Switch语句对该分数进行分类。
Switch语句中的每个case都表示一个分数范围。在每个case中,我们使用when
关键字进一步限制分数的范围,并将相应的成绩赋值给grade
变量。最后,将学生的成绩分类输出到控制台上。
4.Switch的贯穿
作用:满足某些条件时,处理的逻辑一样,就可以使用贯穿
我们也进一个简单的小例子来细看吧
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入一个数字:");
int num = int.Parse(Console.ReadLine());
switch (num)
{
case 1:
case 2:
case 3:
Console.WriteLine("这是一个小数字");
break;
case 4:
case 5:
case 6:
Console.WriteLine("这是一个中等数字");
break;
case 7:
case 8:
case 9:
Console.WriteLine("这是一个大数字");
break;
default:
Console.WriteLine("这是一个未知数字");
break;
}
}
}
虽然这个代码写得笨笨的,但是你应该也能很好地感受到贯穿的效果,其实就是把一些情况直接归类,这个东西很多地方其实是不会看到的,博主在这里提出,也是希望大家能理解到一些实用的小技巧。
总结
我们学习的Switch内容不难,在日后的游戏开发中,它更多会用来开发一些复杂情况的甄选:状态机的切换是最为典型。
要明白,我们每天学的东西,在日后的某个地方一定会有帮助的,大厦始于地基。
共勉。
标签:case,语句,Console,14,C#,break,grade,Switch From: https://blog.csdn.net/a6s686/article/details/141531178