0

我想知道是否可以将以下 if else 语句转换为 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;             

    }
4

1 回答 1

2

Switch 语句用例不会仅根据标签执行。比较 case 标签值与 switch 值是否相等,在这种情况下,这没有多大意义,因为我们会进行t == (t >=10 && t<=18). 对于您的用例,我会坚持使用 if else。

于 2016-02-17T14:44:37.990 回答