<分区>
Possible Duplicate:
How does Duff’s device work?
int n=5;
int q=(n+3)/4;
switch(n%4)
{
case 0:do{ n++;
case 3:n++;
case 2:n++;
case 1:n++;}while(--q>0);
}
cout<<n;
n 的值是多少? 这只是代码片段,给出的答案是 10。看不出如何?
<分区>
Possible Duplicate:
How does Duff’s device work?
int n=5;
int q=(n+3)/4;
switch(n%4)
{
case 0:do{ n++;
case 3:n++;
case 2:n++;
case 1:n++;}while(--q>0);
}
cout<<n;
n 的值是多少? 这只是代码片段,给出的答案是 10。看不出如何?
最佳答案
n
的最终值为10。切换前n
为5,q
为2。切换到情况1。n
在第一次迭代中递增 1 次,在第二次递增 4 次。最后 n
的值为 5+1+4 = 10。
关于c++ - 无法计算输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13177550/