在 C++ 中将 if, else if, else 语句转换为 switch 语句

converting an if, else if, else statement into a switch statement in c++

本文关键字:else 语句 if switch 转换 C++ 中将      更新时间:2023-10-16

我想知道是否可以将下面的if else语句转换为c ++中的switch语句。如果可以的话,有人可以告诉我怎么做,因为目前我写它的方式有错误。

这是我尝试转换为开关语句的 if else 语句。

if ( t>=10 && t <=18 ) {
        blue=0; green=1; red=1;
        xb_led=0; xg_led=1; xr_led=1;
    } else if ((t >18 && t<=22)||(t>22 && t<=25)) {
        green=0; blue=1; red=1;
        xg_led=0; xb_led=1; xr_led=1;
    } else {
        red=0; green=1; blue=1;
        xr_led=0; xg_led=1; xb_led=1;
    } 

这是我已将其转换为的内容,但是出现错误。

switch(t) {
        case t >=10 && t<=18:
        blue=0; green=1; red=1;
        xb_led=0; xg_led=1; xr_led=1;
        break;
        case t >18 && t<=22|| t>22 && t<=25:
        green=0; blue=1; red=1;
        xg_led=0; xb_led=1; xr_led=1;
        break;
        case t >25:
        red=0; green=1; blue=1;
        xr_led=0; xg_led=1; xb_led=1;
        break;             
    }

Switch 语句案例不会仅基于标签执行。将案例标签值与开关值进行比较以相等,在这种情况下,这没有多大意义,因为我们会有t == (t >=10 && t<=18)这样的比较。对于您的用例,我会坚持使用if其他。