在 C++ 中将 if、else if、else 语句转换为 switch 语句
converting an if, else if, else statement into a switch statement in c++
我想知道是否可以将以下 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;
}
Switch 语句案例不会仅根据标签执行。将 case 标签值与 switch 值进行比较,在这种情况下没有多大意义,因为我们会有 t == (t >=10 && t<=18)
这样的比较。对于您的用例,我会坚持使用 if else。
我想知道是否可以将以下 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;
}
Switch 语句案例不会仅根据标签执行。将 case 标签值与 switch 值进行比较,在这种情况下没有多大意义,因为我们会有 t == (t >=10 && t<=18)
这样的比较。对于您的用例,我会坚持使用 if else。