Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: josephb401 en 04 de Abril 2016, 03:56

Título: C++ do while loop no funciona se repite siempre el bucle con cualquier respuesta
Publicado por: josephb401 en 04 de Abril 2016, 03:56
Creen que alguien me podria decir cuál es el problema con estas lineas de código, cada vez que lo ejecuto no puedo salir del loop

Código: [Seleccionar]
do
{
cout << "\nEnter AM/PM: ";
getline(cin, am_pm);

} while (am_pm != "AM" || am_pm != "PM");
Título: Re:C++ do while loop no funciona se repite siempre el bucle con cualquier respuesta
Publicado por: César Krall en 06 de Abril 2016, 10:54
Hola!

Diría que tienes mal establecida la condición de salida del bucle.

Supongamos que cuando pide "Enter AM/PM" yo respondeo AM, de modo que am_pm = AM

Al llegar a la condición la evaluación que hace es ¿am_pm es distinto de AM ó distinto de PM?

La respuesta es: true, porque am_pm es distinto de PM y por tanto vuelve a repetir el bucle

La condición habría que expresarla entonces en lugar de con un or con un and

while (am_pm != "AM" && am_pm != "PM");

Ahora si introduzco AM la pregunta es ¿es distinto am_pm de AM y distinto de PM? La respuesta es no y saldría del bucle

Saludos!