switch 语句必须遵循下面的规则:

  • switch 语句中的 expression 必须是一个整型或枚举类型,或者是一个 class 类型,其中 class 有一个单一的转换函数将其转换为整型或枚举类型。
  • 在前面的示例中,整型变量 n 用于 switch case。注意还可以直接使用字符串变量 s。在这种情况下,可以以下列方式使用 switch case: --参考msdn
  •  switch(s)
    {case "1":// ...case "2":// ...
    }

  • 在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。
  • case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量。
  • 当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。
  • 当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。
  • 不是每一个 case 都需要包含 break。如果 case 语句为空,则可以不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止。
  • C# 不允许从一个开关部分继续执行到下一个开关部分。如果 case 语句中有处理语句,则必须包含 break 或其他跳转语句。
  • 一个 switch 语句可以有一个可选的 default case,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的 break 语句不是必需的。
  • C# 不支持从一个 case 标签显式贯穿到另一个 case 标签。如果要使 C# 支持从一个 case 标签显式贯穿到另一个 case 标签,可以使用 goto 一个 switch-case 或 goto default。

注:

1、switch 语句中,参数范围可以延续。

 1 switch (j)
 2             {
 3                 case 0:
 4                     string test = "test";
 5                     Console.WriteLine(test +j);
 6                     return 0;
 7                 case 1:
 8                     test = "1";
 9                     Console.WriteLine(test);
10                     //return 1;
11                     break;
12                 case 2:
13                     test = "2";
14                     Console.WriteLine(test);
15                     break;
16                 default:
17                     return -1;
18             }

test 变量范围测试

转载于:https://www.cnblogs.com/meng9527/p/9145789.html

Switch 中参数的范围探讨相关推荐

  1. java.lang.UnsupportedClassVersionError: JVMCFRE003解决方法--jdk 1.6 中switch的参数无法使用String类型

    java.lang.UnsupportedClassVersionError: JVMCFRE003解决方法--jdk 1.6 中switch的参数无法使用String类型 参考文章: (1)java ...

  2. switch中的参数类型

    关于switch的参数类型 switch(expr1)中,expr1是一个整数表达式,整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int ...

  3. C++ 中的switch函数参数类型

    C++ 中的switch函数参数类型 switch (exp1)中, exp1 是一个整数表达式,整数表达式可以是int基本类型或Integer包装类型,由于, byte,short,char都可以隐 ...

  4. java中的switch的参数类型

    java中的switch没有C#的方便,C#中,string都可以用.java.C++中只能用整型. Java 7之前,switch后面的括号里面只能放int类型的值,注意是只能放int类型,但是放b ...

  5. Java中switch的参数类型

    概述 在jdk1.7以下版本,switch的参数类型只能是:int 或者 enum,在jdk1.7及以上版本,参数可以为String类型!!! 当因为版本低,switch功能不支持字符串作为条件.这时 ...

  6. DL之DNN优化技术:DNN中参数初始化【Lecun参数初始化、He参数初始化和Xavier参数初始化】的简介、使用方法详细攻略

    DL之DNN优化技术:DNN中参数初始化[Lecun参数初始化.He参数初始化和Xavier参数初始化]的简介.使用方法详细攻略 导读:现在有很多学者认为,随着BN层的提出,权重初始化可能已不再那么紧 ...

  7. 关于switch的参数类型

    关于switch的参数类型 switch(expr1)中,expr1是一个整数表达式,整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int ...

  8. switch()的参数注意项(转)

    由于转自转载,作者不详,在此表示感谢@作者 1.switch参数类型: switch 后面的表达式不能跟double,float,long,String ,boolean,可以接int,short,b ...

  9. C++ main函数中参数argc和argv

    argc 是 argument count的缩写,表示传入main函数的参数个数: argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0 ...

最新文章

  1. 第五章:Java_面向对象编程(三)
  2. 如何将前端数据保存到文件
  3. MAC itunes无法验证服务器s.mzstatic/itunes无法更新服务器解决方案
  4. 博客园自动显示随笔标签
  5. JAVA入门级教学之(文档里的is-a、is-like-a、has-a到底是什么意思)
  6. java离线语音识别_你家的油烟机,可以语音控制了吗?
  7. Centos挂载windows共享文件夹
  8. table函数--Matplotlib
  9. 美人计--图片asp木马
  10. Android时间与服务器同步方法
  11. 湖南张家界夫妻自助旅游攻略
  12. Dockerfile指令详解镜像构建实例说明
  13. 【ACM省赛】第九届河南省程序设计大赛 B 宣传墙
  14. 计算机网络如何新建vlan和划分vlan,[单选] 划分VLAN后,不同VLAN的计算机之间不能实现二层通信。如果在VLAN间通信,需要建立()...
  15. Cesium里面的气泡
  16. Java Shadowing 影子变量 影子声明
  17. JVM3:实战:内存分配与回收策略
  18. linux 查看当前连接ip,netstat查看系统连接数及当前连接IP
  19. 最短路径的模板-摘自宫水三叶
  20. 【JDK8 新特性 6】收集Stream流中的结果

热门文章

  1. 测试:白盒测试(白盒测试是什么 白盒测试的优缺点 白盒测试中有哪些测试方法)
  2. 线性回归c语言简易代码
  3. CAD中如何绘制多段线?CAD多段线是干什么用的?
  4. java rpc框架 hsf_分布式服务框架HSF学习
  5. 基于状态机实现XMODEM和YMODEM协议
  6. nginx+uwsgi部署web2py
  7. php 单点登录实现代码,PHP简单实现单点登录功能示例
  8. 【position】
  9. EverNote试用小结
  10. 6张思维导图,搞定项目管理!(PMP项目管理可用)