1.switch case 选择结构
语法:
switch (表达式) {
//计算表达式的值
case 常量1: //如果等于常量1
语句1;
break; //终止整个switch
case 常量2: //如果等于常量2
语句2;
break;
...
default: //如果没有找到匹配的值
语句;
break;
}
注:
case 支持:整数、字符、字符串、二进制 ;但是不支持浮点型(带小数的)
case 后的常量值类型 | 整数 | 不加引号 |
字符串 | 加双引号 | |
字符 | 加单引号 |
案例:
韩嫣参加计算机编程大赛:
如果获得第一名,将参加麻省理工大学组织的1个月夏令营
如果获得第二名,将奖励惠普笔记本电脑一部
如果获得第三名,将奖励移动硬盘一个
否则,不给任何奖励
int mingCi = 1;
switch (mingCi) {
case 1:
Console.WriteLine("参加麻省理工大学组织的1个月夏令营");
break;
case 2:
Console.WriteLine("奖励惠普笔记本电脑一部");
break;
case 3:
Console.WriteLine("奖励移动硬盘一个");
break;
default:
Console.WriteLine("没任何奖励 ");
break;
}
注:
【1】如果case 语句下面写了代码,break 不可以省略;
case 有一种组合方式,没有代码的case 下可以省略break,比如:
当获得第一名、第二名都是“奖励惠普笔记本电脑一个”的时候:
int mingCi = 1;
switch (mingCi) {
case 1: //此case下无代码,即case 的自由组合
case 2:
Console.WriteLine("奖励惠普笔记本电脑一部");
break;
case 3:
Console.WriteLine("奖励移动硬盘一个");
break;
default:
Console.WriteLine("没任何奖励 ");
break;
}
【2】case 后的常量值必须各不相同,可以颠倒顺序
2.switch case PK 多重if 选择结构
选择结构类型 | 相同点 | 不同点 |
switch case | 都是用来处理多分支条件的结构 | ①只能处理等值条件判断的情况 ②条件必须是整型变量 或字符型变量 或 字符串类型 或 二进制类型 |
多重if | ①没有switch 选择结构的限制 ②特别适合某个变量处于连续区间时的情况 |
案例:
张为他的手机设定了自动拨号
1:拨爸爸的号
2:拨妈妈的号
3:拨爷爷的号
4:拨奶奶的号
【1】编号为数字的情况
Console.WriteLine("请输入编号进行拨号:1、爸爸,2、妈妈,3、爷爷,4、奶奶。如:1");
int number = int.Parse(Console.ReadLine()); //读入字符串1,转化为整数1
//string number = Console.ReadLine(); //读入字符串1
//int number = Console.Read(); //读入整数1
switch (number) {
case 1:
Console.WriteLine("打给爸爸...");
break; //真实项目下:调用接口,进行联接通话
case 2:
Console.WriteLine("打给妈妈...");
break;
case 3:
Console.WriteLine("打给爷爷...");
break;
case 4:
Console.WriteLine("打给奶奶...");
break;
//default:
//Console.WriteLine("打给谁?请输入编号!");
//break;
}
Console.Read();
【2】编号为字符的情况:
Console.WriteLine("请输入编号进行拨号:a、爸爸,b、妈妈,c、爷爷,d、奶奶。如:a");
int number = Console.Read(); //读入字符a,将其 ASIC码值 赋给number
switch (number) {
case 'a':
Console.WriteLine("打给爸爸...");
break; //真实项目下:调用接口,进行联接通话
case 'b':
Console.WriteLine("打给妈妈...");
break;
case 'c':
Console.WriteLine("打给爷爷...");
break;
case 'd':
Console.WriteLine("打给奶奶...");
break;
}
Console.Read();
注:
【1】ASIC码值:a 97 ; b 98 ;c 99 ;d 100
【2】键盘上输入任何数字,或者字母,返回的都是一个对应的ASIC码值(一个数字)