찾다

 >  Q&A  >  본문

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

高洛峰高洛峰2813일 전604

모든 응답(2)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-04-17 14:26:53

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

    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,以及其返回值

    회신하다
    0
  • 阿神

    阿神2017-04-17 14:26:53


    楼上正解

    회신하다
    0
  • 취소회신하다