次のコードがあります。
int i = 1;
int j = 0;
switch (i++)
{
case 1: j += i;
case 2: j += i;
case 3: j += i;
break;
}
printf("%d %d",i, j);
i++
式はi
後置インクリメント演算子であるため 1 に評価されるため、ケース 1 のステートメントが実行されます。つまりj
、2 に評価されます。その後、プログラムは中断することなく、後続のすべてのステートメントを実行し続けます。の値は変化しないので、i
の値も変化しj
ません。したがって、出力は次のようになると予想していますが、結果2 2
は2 6
. 誰か説明してくれませんか、ありがとう!