3月13日 Switch分支语句
程序控制结构是什么
定义:控制程序执行的的方式。
程序控制结构的分类
- 顺序结构:程序执行按照语句自上而下的排列顺序依次执行。不会跳过,不会重复;
- 分支结构: 根据条件,选择执行满足条件的语句,跳过不满足条件的语句。
- 循环结构:重复执行特定的语句。
- 跳转语句:终止、跳过循环或分支语句的执行。
常见的顺序结构语句
- 输出语句
- 输入语句
- 赋值语句
- 复合语句
分支结构语句分类
- IF 分支语句
- switch 分支语句
Switch分支语句的语法
switch(变量名)
{
case 值1: 语句 A;break;
case 值2: 语句 B;break;
...;
default: 默认语句;break;
}
- Switch: 创建条件语句的关键字
- 圆括号: 创建分支的依据,通常是一个变量名;
- Case: 创建分支的关键字。
- Break: 跳出 Switch 语句。即终止 switch。
- default:默认分支,如果其他分支条件都不成立,则执行默认分支。
案例1:星期几单词查询器
要求:输入1~7 之间的整数,返回对应的英语单词星期几
// 程序名称
Console.WriteLine("星期几单词查询器");
// 提示语
Console.Write("请输入1~7之间的数字:");
// 存储用户输入的数字
string num = Console.ReadLine();
// 创建 Switch 分支,num 是检测的条件
switch(num)
{
case "1": Console.WriteLine($"星期{num}的单词:Monday");break;
case "2": Console.WriteLine($"星期{num}的单词:Tuesday");break;
case "3": Console.WriteLine($"星期{num}的单词:Wednesday");break;
case "4": Console.WriteLine($"星期{num}的单词:Thursday");break;
case "5": Console.WriteLine($"星期{num}的单词:Friday");break;
case "6": Console.WriteLine($"星期{num}的单词:Saturday");break;
case "7": Console.WriteLine($"星期{num}的单词:Sunday");break;
default: Console.WriteLine("非法输入,请输入 1~7 之间的整数。");break;
}
案例2:自动贩卖机“饮料机”
核心点: 演示整数匹配和 default 处理非法输入。
Console.WriteLine("--- 欢迎使用校园自动售货机 ---");
Console.WriteLine("请输入编号选择饮料:1.可乐 2.雪碧 3.矿泉水 4.奶茶");
string choice = Console.ReadLine();
switch (choice)
{
case "1":
Console.WriteLine("您选择了可乐,请支付 3 元。");
break;
case "2":
Console.WriteLine("您选择了雪碧,请支付 3 元。");
break;
case "3":
Console.WriteLine("您选择了矿泉水,请支付 2 元。");
break;
case "4":
Console.WriteLine("您选择了奶茶,请支付 5 元。");
break;
default:
Console.WriteLine("该编号暂无饮料,请重新输入。");
break;
}
案例3:英雄联盟“位置查询器”
核心点: 演示多个 case 合并执行同一段代码(穿透效果)。
Console.WriteLine("请输入英雄名字(亚索、劫、盖伦、诺手、薇恩、卡莎):");
string hero = Console.ReadLine();
switch (hero)
{
case "亚索":
case "劫":
Console.WriteLine($"{hero} 是一位带节奏的中单英雄!");
break;
case "盖伦":
case "诺手":
Console.WriteLine($"{hero} 是一位霸气的上单坦克!");
break;
case "薇恩":
case "卡莎":
Console.WriteLine($"{hero} 是一位后期无敌的射手!");
break;
default:
Console.WriteLine("英雄库正在更新中,暂未收录该英雄。");
break;
}
案例4. 餐厅“服务评价”评分系统
核心点: 演示字符(char)或字符串的大小写匹配。
Console.WriteLine("请为本次服务评分(A-非常满意,B-满意,C-一般,D-不满意):");
// 转为大写,防止学生输入小写字母导致匹配失败
string level = Console.ReadLine().ToUpper();
switch (level)
{
case "A":
Console.WriteLine("谢谢您的支持。我们会继续努力!");
break;
case "B":
Console.WriteLine("谢谢您的支持。我们会继续努力!");
break;
case "C":
Console.WriteLine("感谢打分!我们会改进服务。");
break;
case "D":
Console.WriteLine("十分抱歉!请联系经理投诉:123456");
break;
default:
Console.WriteLine("无效的评价等级,请输入 A、B、C 或 D。");
break;
}
案例5:简易“星座运气”查询
核心点: 演示整数范围的逻辑分组。
Console.WriteLine("请输入你的出生月份(1-12):");
// 注意:如果用户输入非数字,int.Parse 会报错,此处假设输入合法或建议学生使用 TryParse
int month = int.Parse(Console.ReadLine());
switch (month)
{
case 3:
case 4:
case 5:
Console.WriteLine("春季:万物复苏,你的运气也正在回升!");
break;
case 6:
case 7:
case 8:
Console.WriteLine("夏季:热情似火,运气指数爆表!");
break;
case 9:
case 10:
case 11:
Console.WriteLine("秋季:收获的季节,你的努力将会有回报。");
break;
case 12:
case 1:
case 2:
Console.WriteLine("冬季:沉淀自我,好运正在雪下酝酿。");
break;
default:
Console.WriteLine("地球上目前还没有这个月份哦。");
break;
}