在"switch"语句中使用sets

Zol*_*idt 1 c++ set switch-statement

我可以在"切换"语句中添加集而不是数字吗?喜欢:

switch(number)
{
 case 1<50: //if number is between 1 and 50
 {
 blah;
 break;
 }
 case 50<100: //if number is between 50 and 100
 {
 blah;
 break;
 }
Run Code Online (Sandbox Code Playgroud)

等等.

Bat*_*eba 6

(编辑以下评论,给用户syam的确认)

不可以.在C++中,你只能打开减少到整数的东西.您需要构建一个函数来计算1 <50和50 <100等的积分结果并使用switch(thatFunction(...)).

或者,如果你不需要后续虽然成语,一个开关让你(你的榜样的长相,你不这样做),只使用if,else if,else.

摘自以下注释: 6.4.2-2 [stmt.switch]条件应为整数类型,枚举类型或类类型,其中存在单个非显式转换函数为整数或枚举类型[... ] constant-expression应该是切换条件的提升类型的转换常量表达式(5.19)