私は興味深いプログラミングの質問を見つけました:
このプログラムを実行すると、a,b,c,f の値はどうなるでしょうか?
int i=0,a=0,b=0,c=0,f=0;
while(i<=5){
switch(i++){
case 1:++a;
case 2:++b;
break;
case 3:
case 4:++c;a++;b++;
break;
default:++f;
}
}
価値観だと思った
a=2 、 b=2 、 c=2 および f=2 ですが、
このプログラムを実行すると、a = 3、b = 4、c = 2、f = 2 が得られました。
c と f が値 2 を取得する方法を理解しましたが、どうして a=3 と b=4 になるのでしょうか。
(構文によると、++a と a++ は異なります。++a は値を更新してから使用しますが、a++ は値を使用してから更新します)
a と b の値が 3 と 4 になった方法を説明できる人はいますか?
アップデート:
私の疑問は次のとおりです。i ++では、初期値は0であり、1ではありません。しかし、どのようにケース4 => a = 3
a=2 である必要があり、a=a++ のような置換を行っていないため、ケース 5 で「a」の更新があった場合 (これは正しくありません)、値をインクリメントする必要があります。
任意のヘルプをいただければ幸いです。