c语言中的case后不能加范围吗?

比如如果想输入1到10中的任意一个整数,用case语句怎么写啊?
2024-12-14 06:35:42
推荐回答(5个)
回答1:

不能加。

C的语法中规定,在switch-case语句中,case关键字后只能跟随整型常量或enum类型。

由于C年代久远,故没有一些年轻语言的一些语法糖,case加范围就是其中之一


当然,加范围的switch-case语句可以用多个if-else分支语句替代

int i;
//...
if (i <= 0) { // i <= 0
    //...
} else if (i > 1 && i <= 10) { // 1 < i <= 10
  //...
} else if (i <= 20) { // 10 < i <= 20
    //...
}

以此类推

回答2:

其实也可以这样:

#include

using namespace std;

int main()

{

    int a;

    cin>>a;

    switch(a)

    {

        case 1:case 2:case 3:case 4:case 5: ...... break;

    }

    return 0;

}

并排写也不是不可以。

回答3:

不能加范围,也不能加不等式.
也就是说case后面是一个确实固定的常量.

回答4:

case 1:
case 2:
....
case 10:
break;
附:case后面不能用float类型

回答5:

并列写,如下:
case 1:
case 2:
case 3:
.........
case 10:
break;