在while循环条件c ++中有什么用“?”?

时间:2017-07-04 08:23:12

标签: c++ while-loop

string command;
string bookName;
while (cin >> command, command != "END")
{...}

这里在while循环的条件中,有一个逗号。 我知道可以使用&&||添加多个条件。

但为什么要使用,

有什么好处吗?你能解释一下使用方法和语法吗?

1 个答案:

答案 0 :(得分:19)

这是逗号运算符,也称为“评估并忘记”运算符。 a, b的效果是:

  1. 评估a,包括任何副作用
  2. 放弃其价值(即不做任何事)
  3. 评估b
  4. 使用b的结果作为整个表达式a, b
  5. 的结果

    循环的作者想要表达以下内容:

      

    command读取cin,然后输入循环体,除非command等于"END"

    但是,最好在这里使用&&代替,,因为cin >> command可能会失败(即如果在单词{{1}之前到达输入的结尾找到了)。在这种情况下,END的条件不会按预期执行(它可能永远循环,因为,永远不会收到值command),而条件{{1}做正确的事(终止)。