switchcase语句case后面加括号吗,switch case下面可以写很多语句吗?要不要用大括号括起来???

switchcase语句case后面加括号吗,switch case下面可以写很多语句吗?要不要用大括号括起来???

switchcase语句case后面加括号吗目录

case后面的语句不加大括号,为什么有时候能编译通过有时候不能通过?

switch case下面可以写很多语句吗?要不要用大括号括起来???

在C++中,switch-case语句的case后面不需要加括号。每个case后面只需要跟上一个冒号(:)和相应的代码块即可。例如:

“`

switch (variable) {

case 1:

// Some code to execute if variable == 1

break;

case 2:

// Some code to execute if variable == 2

break;

default:

// Some code to execute if variable is not equal to 1 or 2

break;

}

“`

在上面的示例中,每个case后面都只有一个冒号,没有括号。”

case后面的语句不加大括号,为什么有时候能编译通过有时候不能通过?

case后面的语句不需要加大括号,只要别忘了break就行。

不过有的编程规范上会建议用大括号把case后面的语句括起来。

\x0d\x0a你说的“不能通过编译”,可能是下面这个原因。

C/C++里规定,不能在case语句里定义局部变量。

例如:\x0d\x0a\x0d\x0aint a = 2;\x0d\x0a\x0d\x0a switch (a)\x0d\x0a {\x0d\x0a case 1:\x0d\x0a int c = 10;\x0d\x0a break;\x0d\x0a\x0d\x0a case 2:\x0d\x0a break;\x0d\x0a\x0d\x0a default:\x0d\x0a break;\x0d\x0a }\x0d\x0a编译就会出错,原因是在case 1里定义了局部变量c。

\x0d\x0a而C/C++还有一个很有意思的规定,用{}包括的语句,认为是一个”语句块“,而在语句块里就能想干什么就干什么。

\x0d\x0a比如:\x0d\x0aswitch (a)\x0d\x0a {\x0d\x0a case 1:\x0d\x0a {\x0d\x0a int c = 10;\x0d\x0a break;\x0d\x0a }\x0d\x0a\x0d\x0a case 2:\x0d\x0a break;\x0d\x0a\x0d\x0a default:\x0d\x0a break;\x0d\x0a }\x0d\x0a这样就能通过编译了。

\x0d\x0a再多说两句废话。

C/C++里这个用{}括起来的语句块,可以认为是一段完全独立的代码。

比如:\x0d\x0aint a = 2;\x0d\x0a\x0d\x0a {\x0d\x0a int a = 3;\x0d\x0a }\x0d\x0a这样完全没问题。

而你要是把这对大括号删掉,就会出错。

switch case下面可以写很多语句吗?要不要用大括号括起来???

可以写很多,可以不用大括号括起来。

但是:

加和不加的区别:

加了之后,大括号框定了作用域,大括号内定义的变量只在大括号内部有效。

不加的话,一个case中定义的变量,会在另一个case中也能访问,不安全。

给TA打赏
共{{data.count}}人
人已打赏
影视后期

input函数的使用方法

2024-3-30 12:42:34

影视后期

英国银行swift代码什么意思,SWIFT code是什么意思???

2024-3-30 12:46:20

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
打开微信,扫描左侧二维码,关注【旅游人lvyouren】,发送【101】获取验证码,输入获取到的验证码即可解锁复制功能,解锁之后可复制网站任意一篇文章,验证码每月更新一次。
提交