C++ while()括号里的原理

来源:互联网 发布:网络电影怎么发布 编辑:程序博客网 时间:2024/05/17 03:25

不足不妥不对之处,望不吝赐教


昨天在看网友写的代码的时候,看到了如下代码:
<span style="font-size:18px;">#include <iostream>#include <iomanip>using namespace std;int main(){    int i;    cout<<"i=";    while(cin>>i)    {        cout<< "i="<<i <<endl;    }    return 0;}</span>
当输入非int的量,就跳出循环;

输入int就循环

当时比较疑惑,while()的括号 :不是值为0就跳出 ,0就循环吗?   这个对输入值的类型的判断,是个什么情况

自己查资料,可能是检索方式不行,总之没找到相关依据。最后还是向无所不能的泽哥请教,并得到答案。这里表示感谢。


cin>>i返回的也是一个cin对象。

当一个cin对象作为条件选择、循环等的控制表达式时,编译器会将其转换为真值表达式,如果ciniostategoodbit,则这个真值表达式的结果为真,否则为假。

输入一个非数字可以转换为failbit,从而结束循环,当然这是一个非正常退出。

正常退出可以用键盘模拟产生EOF,表示流输入结束了。在windows中可以输入ctrl+zunix/linux中则为ctrl+d

数字的话。 ciniostategoodbit,也就是真值。


0 0
原创粉丝点击