#include <iostream>using namespace std;int main(){int x=3;int i;do{x-=2;cout<<x;}while(!(--x),cout<<x);return 0;}在while语句中,如果写成while(!(--x));程序是可以ok的,但是加入cout<<x或者cout<<“x”后,程序就变成死循环了,为什么?
2 回答
慕斯王
TA贡献1864条经验 获得超2个赞
cout cin这些输入流的函数自己是有返回值的
while(!(--x),cout<<x) 你这样写,那么while括号里面的循环条件就成了一个逗号表达式,这个逗号表达式的值就是cout<<x的返回值,而不是!(--x)的值,而且cout<<x的返回值不是0,所以循环条件始终为真,那就死循环了。在你的这个程序里面cout<<x的返回值是-30,你可以自己编译cout<<(cout<<x);看看他值是多少。
添加回答
举报
0/150
提交
取消