【发布时间】:2012-03-07 03:04:09
【问题描述】:
我试图了解这是如何工作的。任何帮助将不胜感激。
#include<stdio.h>
void duff(int count)
{
int n=(count+7)/8;
printf("n=%d count =%d\n",n,count%8);
switch(count%8){
case 0: do{ printf("case 0\n");
case 7: printf("case 7\n");
case 6: printf("case 6\n");
case 5: printf("case 5\n");
case 4: printf("case 4\n");
case 3: printf("case 3\n");
case 2: printf("case 2\n");
case 1: printf("case 1\n");
}while( --n >0);
}
}
main(){
int count;
scanf("%d",&count);
duff(count);
}
基本上,如果 switch case 的计算结果为 case 语句 2,那么 while 的 do 语句永远不会执行。但是我运行了这个程序,它给了我输出,但无法解释:
输出:
3
n=1 计数 =3
案例3
案例2
案例一
【问题讨论】:
标签: c switch-statement do-while duffs-device