luckstudent 发表于 2016-8-25 11:11:18

关于cin的疑问

本帖最后由 luckstudent 于 2016-8-25 11:28 编辑

我们都知道,while(cin>>i) 可以连续读入数据来进行处理。但是下面的程序:
                        int i;
                        while(true)
                        {
                                if(cin>>i)
                                        cout<<i<<endl;
                                else break;
                        }
当输入1的时候,输出1换行,循环继续;
输入字符'a'的时候,直接break跳出循环;
当输入1.2的时候,先输出1然后跳出循环;
在Code::Blocks和VS2013上测试。

我的疑问,既然(cin>>i)能当成判断条件,那么输入1.2的时候输出1是执行if后的语句吗,如果是,为什么还要执行else后的语句?

DarkSE 发表于 2016-8-25 14:04:17

是执行了if里面的语句输出了1
然后再进行判断.2执行了else里面的语句{:9_240:}

子煜从嘉 发表于 2016-8-25 21:45:26

cin>>i当输入1.2时,先读入1为真输出1,然后读入.2执行else语句
页: [1]
查看完整版本: 关于cin的疑问