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