重複の可能性:
ダフのデバイスはどのように機能しますか?
これがどのように機能するかを理解しようとしています。どんな助けでも大歓迎です。
#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
ケース 1