第五章:switch选择结构


本章目标

  1. 掌握swtich选择结构
  2. 选择结构总结

本章内容

1、为什么要使用switch

  1. 案例分析:

    案例:班级进行期末测试,
    第一名奖励笔记本
    第二名奖励硬盘
    第三名奖励U盘

  2. 如何解决:

    如何解决?
    方案1:多重if,结构比较复杂
    方案2:switch,只能处理等值判断

2、switch语法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
switch (表达式) {

case 常量 1:
语句;
break;

case 常量 2:
语句;
break;


default:
语句;
break;
}

使用 switch 语句时必须遵守以下规则:

  • switch 语句中表达式的值必须是一个整型、字符、字符串或者枚举类型;
  • 在一个 switch 语句中可以有任意数量的 case 语句,每个 case 关键字后面要跟一个与表达式比较的值和一个冒号;
  • case 关键字后面的值必须与 switch 中表达式的值具有相同的数据类型,并且必须是一个常量(也可以理解为是一个固定的值,不会随程序的运行发生改变);
  • 当表达式的值等于 case 中的值时,就会执行 case 后面的语句,在遇到 break 关键字时停止;
  • 当遇到 break 关键字时,switch 语句会停止运行,并跳转到 switch 语句以外的下一行代码继续运行;
  • 并不是每一个 case 语句后面都需要包含 break 关键字,如果 case 语句为空(case 语句后面没有要执行的代码),则可以不包含 break 关键字,这时程序会继续执行后续的 case 语句,直至遇到 break 关键字为止;
  • C# 不允许从一个 case 语句连续执行到下一个 case 语句,因此如果 case 语句中包含要执行的语句,就必须包含 break 关键字或其他跳转语句;
  • 一个 switch 语句的末尾可以有一个可选的 default(默认选项),当所有 case 语句都不能与表达式相匹配时则会执行 default 部分中的代码,而且 default 中的 break 语句可以省略;
  • C# 不支持从一个 case 语句跳转到另一个 case 语句,如果要从一个 case 语句跳转到另一个 case 语句的话,可以使用 goto 语句

3、执行流程图

4、案例

案例:班级进行期末测试,

第一名奖励笔记本

第二名奖励硬盘

第三名奖励U盘

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int mc=1;
switch(mc){
case 1:
Console.WriteLine("第一名,奖励笔记本~");
break;
case 2:
Console.WriteLine("第二名,奖励硬盘~");
break;
case 3:
Console.WriteLine("第三名,奖励U盘~");
break;
default:
Console.WriteLine("奖励搓衣板~");
break;
}

5、选择结构总结

  1. if选择结构

    • 基本if选择结构: 处理单一或组合条件的情况
    • If-else选择结构:处理简单的条件分支情况
    • 多重if选择结构:处理复杂的条件分支情况
    • 嵌套if选择结构:用于较为复杂的流程控制
  2. switch选择结构

    多重分支并且条件判断是等值判断的情况

  3. if和switch比较

    • 相同点:
      • 都是用来处理分支条件的结构,都属于选择结构
    • 不同点:
      • 多重if选择结构,可以处理多条件判断,也可以处理等值判断
      • switch选择结构,通常处理等值判断,代码可阅读性好

课后作业

  1. 题目:在控制台输入1-7的数字,输出相应星期数。
    比如说输入”1”,打印出“星期一”
    输入1-7之外的数字,打印出“输入错误”
  2. 张三为他的手机设定了自动拨号
    按1:拨爸爸的号
    按2:拨妈妈的号
    按3:拨爷爷的号
    按4:拨奶奶的号