Code Fix

中級switch文でbreakを忘れて後続のcaseまで実行されるバグ › パターン2

switch文でbreakを忘れて後続のcaseまで実行されるバグ

switch文の各case節末尾にbreakを書き忘れ、該当したcase以降のすべての節が続けて実行されてしまうバグです。

 1  #include <iostream>
 2  int main() {
 3      int level = 1;
 4      switch (level) {
 5          case 1:
 6              std::cout << "low" << std::endl;
 7              _________
                    ^
 8          case 2:
 9              std::cout << "mid" << std::endl;
10              break;
11          case 3:
12              std::cout << "high" << std::endl;
13              break;
14      }
15      return 0;
16  }
出力: low\nmid期待: low のみ

空欄を埋めてコンパイル・実行を通す

広告
広告スロット(未設定)

switch文でbreakを忘れて後続のcaseまで実行されるバグ

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)