Proste sprawdzanie poprawności wprowadzanych danych
Ostatnio zmodyfikowano 2017-01-20 15:50
KrulTibianus Temat założony przez niniejszego użytkownika |
Proste sprawdzanie poprawności wprowadzanych danych » 2017-01-20 15:09:38 Cześć. Mam problem z bardzo prostym warunkiem, nie mam pojęcia czemu mi go spełnia liczba, która nie powinna go spełniać... cin >> opcja; while( opcja != 1 || opcja != 2 || cin.fail() ) { cout << "Prosze wybrac poprawna opcje.\n"; cin.clear(); cin.ignore( 1000, '\n' ); cin >> opcja; }
Wpisując 1 lub 2 program wchodzi w pętlę while i nie chce z niej wyjść. Jeśli zamiast while dam if, program też wejdzie w pętlę (wyskoczy komunikat), ale po drugim podaniu 1 lub 2, program przechodzi dalej... Dlaczego wchodzi w pętlę, skoro warunek nie jest spełniony? |
|
KrulTibianus Temat założony przez niniejszego użytkownika |
» 2017-01-20 15:20:12 Po zmianie warunków na (opcja < 1 || opcja > 2) zaczęło normalnie działać, co jest fajną zagadką... Dlaczego poprzednio nie działało, a w tym przypadku działa? |
|
garlonicon |
» 2017-01-20 15:42:58 opcja != 1 && opcja != 2 ( opcja < 1 || opcja > 2 ) |
Rozumiesz? |
|
KrulTibianus Temat założony przez niniejszego użytkownika |
» 2017-01-20 15:50:46 Bardzo eleganckie wytłumaczenie. Czaję, dzięki. |
|
« 1 » |