c++ - 新手简单问题:while的跳出条件

查看:93
本文介绍了c++ - 新手简单问题:while的跳出条件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

今天看到一个实现多组输入的代码:
int n;
while(cin>>n)
{...}
while括号里的表达式不是应该结果是bool类型吗?为何可以是输入语句呢?那它又如何跳出呢?
难道输入的数是0才跳出循环?
问题可能比较傻。但是查不到,只好向各位高手求教.

解决方案

该代码会一直循环测试输入流是否正常,直到输入流到达文件末尾,或者输入流出错。

  1. while括号里的表达式不是应该结果是bool类型吗?为何可以是输入语句呢?

    while括号中的表达式的确是bool类型,所以你可以纠结一下 `cin >> n`这个表达式的返回值到底是什么(`>>`正常读取,返回的是cin的地址值;读入错误时,则返回0)

  2. Q: 那它又如何跳出呢?难道输入的数是0才跳出循环?

    跳出循环的两种输入方式:
    windows下 `ctrl+z`
    linux下 `ctrl+d`
    

恩。。。。其实我也是一知半解,但我比较纠结的是你所说的查不到,如果你是真的查不到答案,我想分享一下我的体验。
首先呢,对于像我这样的资深小白来说,一直坚信着:只有想不到的小白题,没有查不到的答案。
然后咧,就有啥查啥呗,比如这道题,你可以随意摆渡一下 while(cin>>n),就会发现一堆你想要的答案(eg.啥时候能跳出循环);
再然后,像你这样已经不只是纠结于什么时候能停,而考虑起关于表达式值的问题,完全可以去查whilecin >> n的返回值,看看到底暗藏什么玄机。
小白伸手党很容易做的,不过显然不如自己一层一层抽丝剥茧地去追溯一个问题来得有趣(这个话是用来鼓励我自己的XD)

另分享一个挺棒的答案:cin,cout,以及其返回值

这篇关于c++ - 新手简单问题:while的跳出条件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆