c#入门-switch选择

swtich选择

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表达式的语法为:被判断的值+关键字switch+大括号(里面写分支)。

swtich表达式的分支不使用case和default,而是把冒号改为=>,并使用逗号隔开分支块。
swtich表达式必须要囊括所有情况,default使用弃元模式代替,并且弃元模式会参与匹配顺序
在这里插入图片描述
从格式上无法预测此时希望输入switch关键字。因此无法使用自动补全功能,只能记住这个单词

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值