中級 › switch文でbreakを忘れて後続のcaseまで実行されるバグ › パターン5
switch文でbreakを忘れて後続のcaseまで実行されるバグ
switch文の各case節末尾にbreakを書き忘れ、該当したcase以降のすべての節が続けて実行されてしまうバグです。
1 #include <iostream> 2 int main() { 3 int step = 1; 4 switch (step) { 5 case 1: 6 std::cout << "first" << std::endl; 7 _________ ^ 8 case 2: 9 std::cout << "second" << std::endl; 10 break; 11 case 3: 12 std::cout << "third" << std::endl; 13 break; 14 } 15 return 0; 16 }
出力: first
second期待: first のみ
空欄を埋めてコンパイル・実行を通す
switchはbreakに出会うかブロックの終わりに達するまで実行し続けます。
次の問題