problema con el do while loop

Iniciado por josephb401, 4 Abril 2016, 00:42 AM

0 Miembros y 1 Visitante están viendo este tema.

josephb401

alquien me podria decir cual es el problema con este codigo nose porque cuando lo ejecuto nunca me puedo salir del loop sin importar que entre

do
{
cout << "\nEnter AM/PM: ";
getline(cin, am_pm);

} while (am_pm != "AM" || am_pm != "PM");

engel lex

primero el titulo de tu problema debe ser descriptivo, esto es un foro de informática, estás colocando tu tema en el subforo de c/c++, así que en lineas generales "ayuda c++" es cerca de 80% redundante al contexto, modifica el problema y da una descripción a tu problema específico

segundo recomiendo que uses las etique tas GeSHi en tu código para que sea más legible e indiques la linea del error (ya te modifiqué la etiqueta, pero no se la linea)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

josephb401


crack81

#3
No se esta cumpliendo la condicion, una forma de resolverlo  seria asi:

Código (cpp) [Seleccionar]
#include <iostream>

using namespace std;

int main()
{
    string am_pm;
    do
    {
        cout << "\nEnter AM/PM: ";
        getline(cin, am_pm);

    }
    while ((am_pm != "AM") && (am_pm != "PM"));
    return 0;
}


Otra:
Código (cpp) [Seleccionar]
while (!((am_pm == "AM") || (am_pm == "PM")));

Otra:
Código (cpp) [Seleccionar]
while (((am_pm == "AM") || (am_pm == "PM"))==false);
Si C/C++ es el padre de los lenguajes entonces ASM es dios.