while usando switch programacion lenguaje for else ejemplos ciclo c++ while-loop

c++ - usando - switch en c



¿Para qué sirve "," en la condición de bucle while c++? (1)

Esta pregunta ya tiene una respuesta aquí:

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

Aquí en la condición del ciclo while, hay una coma. Sé que se pueden agregar varias condiciones usando && o || .

Pero , ¿por qué usar,?

¿Hay ciertos beneficios? ¿Puedes explicar el uso y la sintaxis?


Es el operador de coma, también conocido como el operador de "evaluar y olvidar". El efecto de a, b es:

  1. Evaluar a , incluidos los efectos secundarios
  2. Descartar su valor (es decir, no hacer nada con eso)
  3. Evaluar b
  4. Usa el resultado de b como el resultado de toda la expresión a, b

El autor del ciclo quería expresar lo siguiente:

Lea el command de cin , y luego ingrese el cuerpo del bucle a menos que el command sea ​​igual a "END"

Sin embargo, les hubiera sido mejor usar && lugar de , aquí, porque el cin >> command puede fallar (es decir, si se llega al final de la entrada antes de que se encuentre la palabra END ). En tal caso, la condición con , no hará lo que se pretendía (probablemente repetirá siempre, ya que el command nunca recibirá el valor END ), mientras que la condición con && haría lo correcto (terminar).