Miért lesz ez végtelen ciklus?
Annyira idegesítő! Bennem van a hiba csak nem tudom hol.
int manual;
do
{
manual = 0;
cout << "\nManual test (1 or 0): ";
cin >> manual;
if(manual != 1 || manual != 0)
cerr << "Error! Wrong number!" << endl;
}while((manual != 1) || (manual != 0));
Az volna a célom, hogy, ha nem 0 vagy 1 a megadott szám akkor folytassa a ciklust addig míg 0-t vagy 1-et nem kap. Csakhogy végtelenségig megy. Nem lép ki a ciklusból 0 és 1-es gombra sem.
Amúgy, ha véletlenül betűt írok, akkor meg folyamatosan pörög.
Mert rossz a feltételed.
1-es esetben a manual!=0 rész lesz igaz, tehát a vagy kifejezésed igaz lesz.
0-s esetben a manual!=1 rész lesz igaz, tehát a vagy kifejezésed igaz lesz.
Neked addig kell menned, míg mindkét feltétel egyszerre teljesül: Nem 1 ÉS Nem 0.
Betűkre pedig a legegyszerűbb talán a cin.clear()-es megoldás.
Gondolj bele, ha egy nőnek lenne végtelen ciklusa :-D
Amúgy meg amit az #1 -es írt. :-D
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!