c++ - usando - switch en c
¿Para qué sirve "," en la condición de bucle while c++? (1)
Esta pregunta ya tiene una respuesta aquí:
- expresión separada por comas en el ciclo while en C 5 respuestas
- ¿Cómo funciona el operador de coma? 9 respuestas
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:
- Evaluar
a
, incluidos los efectos secundarios - Descartar su valor (es decir, no hacer nada con eso)
- Evaluar
b
- Usa el resultado de
b
como el resultado de toda la expresióna, b
El autor del ciclo quería expresar lo siguiente:
Lea el
command
decin
, y luego ingrese el cuerpo del bucle a menos que elcommand
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).