switch 中case的条件问题!

我想让 CASE 后面的条件为一个区域的,怎么改?
switch (i)
case >40&&<46
大概就这样,但是出错了。 。。

基本的C语言语法问题。
switch()内的表达式必须有一个定值
case后面只能是表达式的一个定值,不能指定范围。
如果想要实现以上
可以使用if(i>40 && i<46)语句。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-09
  基本的C语言语法问题。
switch()内的表达式必须有一个定值
case后面只能是表达式的一个定值,不能指定范围。
如果想要实现以上
可以使用if(i>40 && i<46)语句。

  switch 英[swɪtʃ] 美[swɪtʃ]
  n. 开关; 转换,转换器; 软鞭子; [信] 接线台;
  vt.& vi. 转换; 转变,改变; 关闭电流; 鞭打;
  vt. 转换; (棍棒、鞭子等) 挥动; 迅速转动; 鞭打;
第2个回答  2009-03-31
要这样,先用IF语句,把区间的值转换成一个个具体的点.
比如:
int i;
if(x<=40) i=1;
if(x>40&&x<46) i=2;
......
switch(i)
case ....
...
希望对你有帮助.
第3个回答  2015-09-22
C和C++语言中的switch语句,switch()内的表达式必须有一个定值,case后面必须是常量或常量表达式,它只能是switch表达式的一个取值,不能是取值范围。如果想要实现对取值范围进行判断分支,可以使用if语句,如:if(i>40 && i<46)语句。

case 中用break跳出当前的switch语句,用continue是跳出“本次”分支,开始下一次分支。
第4个回答  2009-03-31
貌似case后面不能为区域,只能为定值,vb的select case 语句倒是可以用范围的,但是c++好像不可以。望高手指正!