九、选择结构——switch case

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码值(一个数字)

 

 

你可能感兴趣的:(C#,c#)