C++do-while语句带自增自减的问题

发布时间:2024-05-21 20:03 发布:上海旅游网

问题描述:

int n=1;
do
cout<<n<<" ";
while(n++<=3);
还有
int n=1;
do
cout<<n<<" ";
while(++n<=3);
这两个语句输出的结果是什么?还请能注明原因,谢谢

问题解答:

第一个输出1 2 3 4
n++<=3是先取n的值和3比较,n再自增1.
这样,当n=3的时,先和3比较相等,再加1为4,继续循环,打印出4.
第二个输出1 2 3
++n<=3是n先自增1,再和3比较.
这样,当n=3时,先加1为4,和3比较,条件不成立退出.不能打印出4.

注意,n++是先使用,后自增。++i刚好相反
所以,
int n=1;
do
cout<<n<<" ";
while(n++<=3);

while(n++<=3);是先判断while(n<=3),然后才有n=n+1;
所以
int n=1;
do
cout<<n<<" "; //第1次 n=1//第2次 n=2//第3次 n=3//第4次 n=4
while(n++<=3);//第1次 1<=3,n=n+1=2//第2次 3<=3,n=n+1=4//第3次 4<=3退出循环
所以输出1 2 3 4

至于
int n=1;
do
cout<<n<<" ";
while(++n<=3);
则是先令n=n+1,再判断while(n<=3);

不用我说,你也应该知道这次是输出1 2 3了吧?

上面输出:1 2 3 4
下面输出:1 2 3
分析:上面的执行do语句,输出n,每次输出后,判断这个数是否小于或等于3,然后进行自加(n++)运算,一直到输出4,才判断出是大于3了,所以输出4后停止。
过程:显示1,判断一次,自加;显示2,判断一次,自加;显示3,判断一次,自加;显示4,判断一次,越界,停止。

下面的执行do语句,输出n,每次输出后,先进行自加(++n)运算,判断这个数是否小于或等于3,,一直到输出3,才判断出是等于3了,所以输出3后停止。
过程:显示1,自加,判断一次;显示2,自加,判断一次;显示3,自加,越界,停止。

热点新闻