中級 › switch文でbreakを忘れて次のcaseまで実行される(フォールスルー) › パターン5
switch文でbreakを忘れて次のcaseまで実行される(フォールスルー)
各caseの末尾にbreakが無いと、一致したcase以降のブロックがそのまま次のcaseに流れ込んで実行され続けます。
1 #include <stdio.h> 2 3 int main(void) { 4 int mode = 1; 5 switch (mode) { 6 case 1: 7 printf("start\n"); 8 _________ ^ 9 case 2: 10 printf("run\n"); 11 break; 12 case 3: 13 printf("stop\n"); 14 break; 15 } 16 return 0; 17 }
出力: start
run期待: start
空欄を埋めてコンパイル・実行を通す
最初のcaseにbreakが無いと、次のcaseのブロックまで巻き込んで実行してしまいます。
次の問題