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