一、为什么这个while循环不停止
当执行代码
pound(times);
此时, n = 5,下面的代码:
while(n>0)
printf("#");
循环条件 n>0 --> 满足条件 -->运行循环体 --> 由于循环体中并没有改变终止条件的语句(即 n 始终是 5) --> 进入“死循环”
二、而把n=n-1改成了while(n-->0);就可以呀
能正常运行的原因在于:在循环过程中,循环条件是改变的(逐渐减小)。
如下代码:
while(n-->0)
printf("#");
其循环过程(以 n = 5 为例):
第1次运行:n--后,n = 4,循环条件满足,继续
第2次运行:n--后,n = 3,循环条件满足,继续
第3次运行:n--后, n = 2,循环条件满足,继续
第4次运行:n--后, n = 1,循环条件满足,继续
第5次运行:n--后,n = 0 , 循环条件不满足,终止
三、
综合推测,代码可以修改为:
void pound(int n)
{
while(n>0){
printf("#");
n = n-1;
}
printf("\n");
}