赞
踩
switch选择可以使用多个并列的分支,结合模式匹配进行判断。
在需要判断多种情况时,switch选择比一大堆if-else更容易读懂。
和模式匹配一样,被判断的值只会进行一次取值。
而if-else会多次对被判断的值进行取值。这期间如果值变动,会影响结果。
switch同样有代码段(按Tab生成)
基本语法为:关键字swtich +括号(里面填被判断的值)+大括号(里面写分支)
int i = 0;
switch (i)
{
case 1:
case 2:
default:
break;
}
分支写法为case + 模式 + 冒号
或者 default + 冒号。这个分支表示默认,如果其他所有case都不满足,则会执行此分支。
分支判断是有序的,从上到下。但default永远是最后匹配,无论它放在哪。
如果分支匹配的模式囊括了所有情况,那么之后的所有case分支会报错。
default分支会报警告:检测到不可达的代码。
一个swich可以没有任何分支。
一个分支后面直到下一个分支为止,是一个分支块。
除非分支后面没有任何语句,那么他的分支块会顺延,和下一个分支共用分支块。
分支块代码不能随着流程贯穿到下一个分支块或脱离switch语句。
可以使用break跳出switch语句(break只能作用于循环和switch,没有再多的例外情况了)。
在模式匹配后,可以添加when+条件
这里的条件因为不是模式匹配,可以和普通变量进行比较。
如果条件不是常量true,那么分支匹配的模式可以重复。
switch表达式类似于三元表达式,是取值语句,不能独立成句,所有分支必须是可以取值的表达式。
switch表达式的语法为:被判断的值+关键字switch+大括号(里面写分支)。
swtich表达式的分支不使用case和default,而是把冒号改为=>,并使用逗号隔开分支块。
swtich表达式必须要囊括所有情况,default使用弃元模式代替,并且弃元模式会参与匹配顺序
从格式上无法预测此时希望输入switch关键字。因此无法使用自动补全功能,只能记住这个单词
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。