C言語のelse if文とswitch文の使い方。複数条件分岐を解説。
else if を使います。int score = 75; if (score >= 90) printf("優\n"); else if (score >= 70) printf("良\n"); else if (score >= 50) printf("可\n"); else printf("不可\n");
score >= 50 を先に書くと、90点も70点もここで引っかかり全員「可」になります!厳しい条件から順に。int day = 3; switch (day) { case 1: printf("月曜\n"); break; case 2: printf("火曜\n"); break; case 3: printf("水曜\n"); break; default: printf("不明\n"); }
break; を書かないと、次のcaseに「落ちて」実行し続けます(フォールスルー)。バグの温床!switch (n) { case 1: printf("A\n"); // breakなし! case 2: printf("B\n"); // breakなし! case 3: printf("C\n"); break; } // n=1 のとき: A, B, C が全部出る!
case 1: case 2: printf("小\n"); break;
この講座の理解度をチェックしましょう!
break がないと、マッチした case 以降のすべての case が実行されます。これを「フォールスルー」と呼びます。
default は省略可能ですが、どの case にも該当しない場合の処理を書けるため、通常は書くことが推奨されます。
switch は整数型(int, char など)のみ対応しています。float や double は使えません。