为了账号安全,请及时绑定邮箱和手机立即绑定

switch后面的括号不能是变量吗?

文中原话:“2、 case 后面的值可以是常量数值,如 1、2;也可以是一个常量表达式,如 2+2 ;但不能是变量或带有变量的表达式,如 a * 2“

但是文中的举例: int num =1 ;  switch(num)  其中的num 不正是一个变量吗?  是不是我概念搞混了 help~



正在回答

5 回答

不可以,必须是常量表达式,文中已经给num赋值为1,所以此时括号里的num应看为常量

1 回复 有任何疑惑可以回复我~
#1

慕仰0468355 提问者

感谢回答 “文中已经给num赋值为1,所以此时括号里的num应看为常量”这句话精辟 学到了 谢谢!
2018-04-11 回复 有任何疑惑可以回复我~

num是变量 被赋值为1后一样是变量 只不过是只能取1的变量 把赋值后的num看做常量会混淆 实际上()内要求的是取值唯一 仅此而已

0 回复 有任何疑惑可以回复我~

不得不说的小秘密中说的是switch后小括号内的表达式值必须是整型或字符型,是case后面的值是常量或常量表达示,所以swich后可是是变量,变量被赋值后还是变量

1 回复 有任何疑惑可以回复我~

是固定的,类似于ABCD 选项,A就是A,B就是B,不可动态传值

0 回复 有任何疑惑可以回复我~

switch后面括号里的值可以是变量, 因为可以修改,它是要和后面case的值进行比较的,case的值是固定的

2 回复 有任何疑惑可以回复我~
#1

慕仰0468355 提问者

不可以,必须是常量表达式,文中已经给num赋值为1,所以此时括号里的num应看为常量 引用一下我认为是最佳的回答
2018-04-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

switch后面的括号不能是变量吗?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信