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