我想知道是否可以将以下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;
}
答案 0 :(得分:2)
切换声明案例不能仅根据标签执行。将案例标签值与开关值进行相等性比较,在这种情况下,由于我们将此类比较作为t == (t >=10 && t<=18)
,因此没有多大意义。对于你的用例,我会坚持使用if else。