simpele beginnersvraag: do while statement met logical OR operator

Status
Niet open voor verdere reacties.

E Froma

Nieuwe gebruiker
Lid geworden
18 mei 2007
Berichten
4
Hoi,
Ik heb een simpele beginnersvraag over c++.
Bij het gebruik van een DO WHILE statement heb ik in mijn conditie een OR (||) operator opgenomen. Zie onderstaande code. Indien b1 waar is of i kleiner is dan 10 moet de WHILE loop worden beëindigd. Dit gebeurt echter niet. De DO WHILE statement wordt niet beëindigd. We hebben een oneindige loop. Waarom werkt de OR niet? De variabele b1 is geïnitialiseerd met de waarde 'true' en daarom moet de DO WHILE statement na 1 ronde worden beëindigd. Wat is fout?

Code:
int main()
{
   bool b1(true);
   int i(0);
   
   do
   {
      i++;
   } while (i <= 10 || b1);
  
   return 0;
}
 
Ok, ik ben er zelf al uit.
De conditie moet de waarde 'false' opleveren om de loop te beëindigen en niet 'true', zoals mijn onlogische :o veronderstelling was. De oplossing is om de conditie aan te passen naar:
Code:
while (i <= 10 && !b1)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan