执行一次就退出了!因此只会打印123
x=123;执行打印之后,x--之后的x的值等于122;!x的值等于0,导致do while的条件不满足,跳出循环,程序结束。
执行输出一次123之后 while(!x) x不为0,那就!x就是假,条件不成立,结束循环了
do...while循环,无论条件是否成立,至少都会执行一次,但x=123的时候,!x结果是为false,条件不成立,进入循环体,输出x--,但是--在x的后面,先输出,再参与计算,所以输出结果是123.
不知道你这个问题是否已经解决, 如果还没有解决的话:do-while循环的一般形式为:
do{
语句块
}while(表达式);
do-while循环与while循环的不同在于:它会先执行“语句块”,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while 循环至少要执行一次“语句块”。
用do-while计算1加到100的值:
#include <cstdio>
int main(){
int i=1, sum=0;
do{
sum+=i;
i++;
}while(i<=100);
printf("%d\n", sum);
return 0;
}
运行结果:
5050
注意while(i<=100);最后的分号;,这个必须要有。