我可以在C ++ switch语句中匹配范围而不是单个值吗?

时间:2015-05-30 15:28:15

标签: c++ switch-statement

我是编程新手。是否可以在切换案例中使用<>

例如,

 ...
 ...
 ...
 int i;
 cin>> i;
 ...
 ...
 switch(i){
 case 20<i<35
 ...

1 个答案:

答案 0 :(得分:7)

C ++没有为匹配范围提供switch语法。

当范围相对较小时,您可以提供案例标签,并依赖于堕落:

switch(i) {
    case 20:
    case 21:
    case 22:
    case 23:
    case 24:
    case 25: doSomething();
             break;
    case 26:
    case 27:
    case 28:
    case 29: doSomethingElse();
             break;
    ...
}

对于中等范围(大约1000个元素),您可以使用函数对象的向量来分派到特定逻辑,但这比编写简单的switch语句需要更多的工作。

对于大范围,您最好的选择是一系列if - else语句。