关于C++的do-while 语句

来源:百度知道 编辑:UC知道 时间:2024/05/04 09:08:12
有如下程序段:
int x=3;
do
{
x-=2;
cout<<x;
}
while (!(--x))
执行这个程序段的输出结果是( )
A.1 B.3 0
C.1-2 D.死循环
希望能解释一下,谢谢。

选C
do while循环和while循环的区别是:
do while循环先执行循环体里的语句,再进行判断,所以如果不符合while条件时也要执行一次循环体;while是先判断,再执行,如果不符合条件就不执行。

x++/x--跟++x/--x的区别是前者先按x执行,再给x增(减)量;后者先给x增(减)量,再执行。

此程序x一开始为3,执行x-=2后x=1,输出1;由while (!(--x))判断,先给x减一,再判断,所以判断时x为0,!取反,即为0时为真,非0时为假,所以while (!(--x))
为真。x变为0,再执行x-=2可得x=-2,输出-2;再判断while (!(--x)),此时x变成-3,while (!(--x))为假。退出循环。

选C
x初值3
进入循环x-=2;
x=1,输出1
--x=0,!(--x)!=0继续执行循环
x-=2,x=0-2=-2,输出-2
--x=-3,!(-3)=0结束循环

怎么解释。。自己模拟下
x=3
do x=1
cout<<1
x=0
do x=-2
cout<<-2
while中断

while()的意思是括号中值为1
while(!)的意思括号中值不为1

C++中do{}while()的妙用
在C++中,有三种类型的循环语句:for, while, 和do...while,
do...while(0)消除goto语句。
通常,如果在一个函数中开始要分配一些资源,然后在中途执行过程中如果遇到错误则退出函数,当然,退出前先释放资源,代码:
version
1
bool Execute()
{
// 分配资源
int *p = new int;
bool bOk(true);

// 执行并进行错误处理
bOk = func1();
if(!