• C#中的 switch-case 语句


    执行过程:

      程序执行到switch处,首先将括号中变量或者表达式的值计算出来,然后拿着这个值依次跟每个case后面所带的值进行匹配,一旦匹配成功,则执行该case所带的代码,执行完成后,遇到break。

    跳出switch-case结构。如果,跟每个case所带的值都不匹配。就看当前这个switch-case结构中是否存在default,如果有default,则执行default中的语句,如果没有default,则该switch-case结构,什么都不做。

    switch条件语句的表达式的类型可以是: bool,整形,char,string,枚举,或相应可以为null的类型.

    [例一]

    编写一个控制台程序,输入一个学生的成绩,输出其等级。(优:>=90;良:>=80;中:>=70; 及格:>=60;不及格:<60)

     1 static void Main(string[] args)
     2         {
     3             Console.WriteLine("please input:");
     4             int opition = int.Parse(Console.ReadLine());
     5             switch (opition/10)
     6             {
     7                 case 10:
     8                 case 9:
     9                     Console.WriteLine("youxiu");
    10                     break;
    11                 case 8:
    12                     Console.WriteLine("lianghao");
    13                     break;
    14                 case 7:
    15                     Console.WriteLine("zhong");
    16                     break;
    17                 case 6:
    18                     Console.WriteLine("jige");
    19                     break;
    20                 case 5:
    21                 case 4:
    22                 case 3:
    23                 case 2:
    24                 case 1:
    25                 case 0:
    26                     Console.WriteLine("bujige");//看这个,如果最后会输出相同的结果,方便起见,可以不在每一个case块后打break,当然也可以打上(如果打break的话就要在每一个有break的块内写输出)
    27                     break;
    28             }
    29             Console.ReadLine();
    30 
    31         }

    [例二]

    李四的年终工作评定,如果定为A级,则工资涨500元, 如果定为B级,则工资涨200元,如果定为C级,工资不变,如果定为D级工资降200元,如果定为E级工资降500元.
    设李四的原工资为5000,请用户输入李四的评级,然后显示李四来年的工资.

     1  static void Main(string[] args)
     2         {
     3             bool b = true;//注意此处设计bool值的用意,考虑到了还有一种是输错了的情况
     4             double salary = 5000;
     5             Console.WriteLine("请输入李四的年终评定(A, B, C, D, E):");
     6             string level = Console.ReadLine();
     7 
     8             switch (level)//可以填字符串形式
     9             {
    10                 case "A"://字符串记得要加双引号
    11                     salary += 500;
    12                     break;
    13                 case "B":
    14                     salary += 200;
    15                     break;
    16                 case "C":
    17                     //salary =
    18                     break;
    19                 case "D":
    20                     salary -= 200;
    21                     break;
    22                 case "E":
    23                     salary -= 500;
    24                     break;
    25                 default:
    26                     Console.WriteLine("error, please try again!");
    27                     b = false;
    28                     break;
    29             }
    30             if(b)
    31             {
    32                 Console.WriteLine($"李四明年的工资是{salary}元");
    33             }
    34             Console.ReadKey();//运行完后等待按键关闭窗口
    35         }

    c#中switch语句两个case标签之间有代码,却没有break跳出的话,系统会提示错误,控制不能从一个case标签贯穿到另一个case标签.--所以担心出问题的同学就在每个case后打break吧.

     

    很简单,带脑子按例子多打两遍就会了

  • 相关阅读:
    链表补充及链表和数组的区别
    单链表(不带头结点)
    动态数组
    【笔记】SQL语言的设计与编写
    netty 学习笔记一:感受 IO编程 NIO编程 与 Netty 编程
    分享系列——Thread#join() 在 Java 源码中并没有 notify ,被阻塞线程是如何唤醒的?答案在 JVM
    RabbitMQ 安装 图笔记版
    RabbitMQ 安装——RPM 和 TAR 两种方式
    学原理脱坑 之 centos 6/7 更新 UTC 以及 设置系统时区
    数据结构和算法篇——散列表
  • 原文地址:https://www.cnblogs.com/SophieWang-cmu/p/13143420.html
Copyright © 2020-2023  润新知