①程序
int a,b,c,d,i,j,k;
a=10;
b=c=d=5;
i=j=k=0;
for(;a>b;++b)i++;
while(a>++c)j++;
do k++;while(a>d++);
printf("i=%d\n", i);
printf("j=%d\n", j);
printf("k=%d\n", j);
据观察,
此题的三个循环是独立输出的
i=5
j=4
k=6
~
①for(;a>b;++b)i++;
b的下限b=5
b的上限<a=10
b循环5次:5、6、7、8、9
i++表示i循环递增
i的下限i=0
i也循环5次:1,2,3,4,5
i的最终结果为i=5
~
②while(a>++c)j++;
++c的下限++c=6(先加再算)
++c的上限<a=10
++c循环4次:6、7、8、9
j++表示j循环递增
j的下限i=0
j也循环4次:1,2,3,4
j的最终结果为j=4
~
③do k++;while(a>d++);
d++的下限d++=5(先算再加)
d++的上限<a=10
d++循环5次:5、6、7、8、9
k++表示k循环递增
k的下限k=0
先执行1次k=1
k再循环5次:2,3,4,5,6
即k++一共执行6次
i的最终结果为k=6