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