c++ - 无法计算输出

标签 c++ for-loop do-while

<分区>

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/

相关文章:

Java for循环问题

java - 使用 while 循环重复一组指令 - Java

javascript - 使用 setTimeout 执行 while 循环会导致无限循环

c++ - 为什么我的析构函数似乎比构造函数更频繁地被调用?

c++ - C++中的执行时间

javascript - 如何将函数应用于 Javascript 列表子列表中的每个项目?

Javascript - Math.random 函数在 for 循环中调用时返回相同的结果

c - 在 for 循环中使用 do-while 循环是否正确?为什么以及为什么不呢?

c++ - 获取字符串流 C++ 的剩余部分

java - 如何使用字节作为媒介将Java字符串转换为C++字符串