当前位置: 首页 > news >正文

C#入门(14)Switch语句

前言

先前我们已经学了if语句,知道了他有一个相似的兄弟Switch,那我们就以他们的区别来进入本节的学习。

Switch和if都是用来控制程序的流程的条件语句,但是它们有一些区别。

  1. 语法结构:Switch语句由一个或多个case标签和一个可选的默认标签组成,每个case标签后面是要执行的语句序列。if语句只有一个条件和一个或多个要执行的语句。

  2. 判断条件:Switch语句通常用于多个离散的值的比较,而if语句通常用于比较表达式的真假。

  3. 多条件处理:Switch语句可以处理多个值的情况,每个case标签对应一个值。if语句可以处理多个条件,每个条件之间使用逻辑运算符连接。

  4. 可读性:当处理多个离散的值时,Switch语句的可读性比if语句要好。在这种情况下,使用Switch语句可以更清晰地表达代码的意图。

  5. 条件复杂性: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内容不难,在日后的游戏开发中,它更多会用来开发一些复杂情况的甄选:状态机的切换是最为典型。

要明白,我们每天学的东西,在日后的某个地方一定会有帮助的,大厦始于地基。

共勉。


http://www.mrgr.cn/news/10844.html

相关文章:

  • Java-文件读取工具类FileReaderUtil
  • 【C#】【EXCEL】BumblebeeComponentsAnalysisGH_Ex_Ana_CondUnique.cs
  • 169页PPT丨城投公司战略规划之产业投资商规划
  • 数据结构学习:单链表
  • 四川财谷通,信息科技引领者!
  • Ps:首选项
  • css设置三个div宽度占据三分之一
  • .NET Razor类库 - 静态资源组件化
  • MVVM分层思想
  • PHP农场扶农系统智慧认养智慧乡村系统农场系统小程序源码
  • AI大模型编写多线程并发框架(六十一):从零开始搭建框架
  • pg数据库的三种不同数据持久性解读
  • Buildroot构建Qt根文件系统-思维导图-学习笔记-基于正点原子阿尔法开发板
  • 华东师范大学学报(教育科学版)
  • Java设计模式【组合模式】-结构型
  • AI大语言模型之分布式训练概述
  • 【C++ 面试 - 内存管理】每日 3 题(一)
  • tortoisegit突然停止工作
  • docker-harbor私有仓库部署和管理
  • Ps:首选项 - 工具