Autor Tema: C++ do while loop no funciona se repite siempre el bucle con cualquier respuesta  (Leído 2134 veces)

josephb401

  • Visitante
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");
« Última modificación: 06 de Abril 2016, 10:53 por César Krall »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
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!
Responsable de departamento de producción aprenderaprogramar.com

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".