switch我的世界怎么分辨区块(你好世界CSharp语言中switch详解)
程序代码中的switch语句以简洁明了的语法形式深受程序员喜爱,但是对初学者而言经常对其语法感到迷惑和不解,本次我们仔细聊一聊。
switch提供了一个直观的选择分支,它比if来的更加爽快,是一个快意恩仇的老铁。但是需要首先要认识由几个关键字组成的结构,才可以对症下药,让一切掌控在手中。
咱们从简单开始,一步步深入:
常用基本结构,红色的是关键字
举个栗子
其实流程还是比较简单的,有匹配项就执行,否则就不执行,default是没有任何匹配项情况下的默认匹配。但是在写代码时其中需要注意的弯弯绕可不少,一起整理一下:
关于小括号里的switch表达式类型一般以int为主,还可以是sbyte、byte、short、ushort、uint、long、ulong、bool、char、string 或以后学习到的枚举类型。
小括号里的类型需要与case 后的常量类型要兼容(最好一致,省得隐式类型转换麻烦~)。
多个case后常量值必须要唯一。
关于defaultdefault是可选的,但是最多只有一个(代码语法的描述就是这么绕[严谨],你已经习惯了吗)。
在没有匹配的case时才执行default后的代码块。
default和case的顺序没有要求,业界习惯将default放在最后,表示前面的case都已经努力过了(不合适就不能勉强)~~
关于break大家可能发现了,每个case和default后代码块的最后都有一个break压阵。这也是C#语法的规定:case和default等switch节点之间是不能“贯穿”的(一种例外马上说),这与C和C 不同,这样也避免了很多由不经意地漏掉了 break 语句而引起的“血案”(前辈们有过的惨痛史~~)。大家在尝试时可以漏掉一个break试试,编译器会毫不留情的警告你。一种情况是例外的,如下:
为了方便理解,这里的变量用了汉字
上例不违反“无贯穿”规则,因为case 2和case 3属于同一个switch部分(也就是他们执行同一个代码块)。
其他除了break我们还有其他语法选择,比如goto case或者goto default,但是最后总得有个接盘侠结束才可。
骚气的黄色
还有一种情况,后续我们会一一碰到,现在先记录下来,后续返回来看:
条条大路通罗马,switch中不管是那条case,都是特定历史条件下的执行路线。路没有对错,就看谁走,到没到终点。
做一行爱一行哈~
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com