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++);
执行此程序后i j k的值分别为几?
求详细解释!
k为什么循环了6次?不是10-5=5次么?
追答do while循环语句,是先走完一遍程序,再做判断。第六次不符合条件,但是程序韩式走的,所以还是走6次。
……我就是想知道为啥k=6 考试时候你能上机看看是个啥啊?
追答for(;a>b;++b)i++; 这里的++b中的++操作放前放后无所谓,因为没有使用b作为操作数进行其他计算,10>5++,可执行5次,即i=5
while(a>++c)j++; 这里的++放前面就有作用了,因为用c作为条件操作数,++放前,即表示每判断前先+1,固10>++5相当于10>6++,则循环4次,j=4
do k++; while(a>d++); 因用do while,所以k++先执行,即k=1,而后10>5++,又相当于普通循环了5次,即k++执行5次,k = 6
我很同意 wangliang08的答案
考试虽无法运行,但在平时可以多练
喵 也很感谢你的解释~ 很详细~
追答互相帮助
没错 前面应该是可以为空的吧……?
追答不好意思 太久没看了。
for循环到b=10,就进行五次i++,i=5
while是真就一直循环,直到判断条件为假。
依然是五次,j=5
后面应该是do{ k++; }while(a>d++);?
k应该是6
。。。很久没看过了 不知道是不是完全正确。。。