【问题标题】:Small thing about input using while loop [closed]关于使用while循环输入的小事[关闭]
【发布时间】:2016-07-11 06:05:18
【问题描述】:

希望大家今天过得愉快!

我有一个关于使用 while 循环进行竞争性编程的快速问题(我们不知道输入的大小,所以我们必须读取到文件末尾或 0 值) 对于这个特定的程序,程序以 0 的 2 个值作为“0 0”结束,我看到的代码使用了这个:

while (cin >> r >> n, r || n) { 
     // code
}
  1. 我的问题是关于 >>> , r || n

    • while循环是不是和

      意思一样
      while ( (cin >> r >> n) ||  (r || n) )
      
    • 我可以有一些偏好来阅读有关 while 循环的多条件的更多信息。

请注意我的转储问题:(谢谢大家阅读这篇文章!

【问题讨论】:

  • 您是如何从逗号运算符(google that)到|| 运算符的?
  • 和||意思不一样这基本上意味着,先做左侧,然后评估右侧并将该表达式视为整个表达式的值(请参阅下面的答案)

标签: c++ input while-loop


【解决方案1】:

基本上....逗号的优先级最低,并且是左结合的。

给定 A , B​​p>

  1. A 被评估
  2. A 的结果被忽略
  3. B 被评估
  4. B 的结果作为结果返回。

延伸阅读:https://stackoverflow.com/a/19198977/3153883

所以在你的情况下,cin 加载 r 和 n。该操作的返回值被忽略。 r 或 n 发生并且是整个 while 表达式的结果。因此,0 0 将导致 while 循环终止。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-10
    • 1970-01-01
    相关资源
    最近更新 更多