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

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

共勉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值