将if,else if,else语句转换为c ++中的switch语句

时间:2016-02-17 14:40:22

标签: c++ if-statement switch-statement mbed

我想知道是否可以将以下if if语句转换为c ++中的switch语句。如果我能够有人请告诉我如何,因为目前我的错误与我写的方式有关。

这是我试图转换为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;             

    }

1 个答案:

答案 0 :(得分:2)

切换声明案例不能仅根据标签执行。将案例标签值与开关值进行相等性比较,在这种情况下,由于我们将此类比较作为t == (t >=10 && t<=18),因此没有多大意义。对于你的用例,我会坚持使用if else。