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

ala*_*min 4 c++ while-loop

string command;
string bookName;
while (cin >> command, command != "END")
{...}
Run Code Online (Sandbox Code Playgroud)

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

但为什么要使用,

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

Rei*_*ica 19

它是逗号运算符,也称为"评估和遗忘"运算符.效果a, b是:

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

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

阅读commandcin,然后进入循环体,除非command等于"END"

然而,他们本来可以更好地使用&&而不是在,这里,因为cin >> command可能会失败(即如果在END找到单词之前达到输入的结尾).在这种情况下,条件,将不会执行预期(它可能command会永远循环,因为永远不会收到值END),而条件与&&将做正确的事情(终止).