我发现了一个有趣的编程问题:
执行此程序后 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。但是 case 4 => a=3
它应该是 a=2 并且如果在案例 5 中有任何“a”更新(这是不正确的),则应该增加该值,因为我没有像 a=a++ 这样进行任何替换。
任何帮助表示赞赏。