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 ステートメントのケースは、ラベルだけでは実行されません。ケース ラベルの値はスイッチの値と等しいかどうか比較されますが、この場合は のような比較があるためあまり意味がありませんt == (t >=10 && t<=18)。あなたのユースケースでは、if elseに固執します。

于 2016-02-17T14:44:37.990 に答える