ConMaki
ConMaki

Reputation: 75

While loop with multiple conditions in C++

How would I make a loop that does the loop until one of multiple conditions is met. For example:

do
{
    srand (time(0));
    estrength = rand()%100);

    srand (time(0));
    strength = rand()%100);
} while( ) //either strength or estrength is not equal to 100

Kind of a lame example, but I think you all will understand.

I know of &&, but I want it to only meet one of the conditions and move on, not both.

Upvotes: 4

Views: 83797

Answers (4)

Daniel Daranas
Daniel Daranas

Reputation: 22624

Use the || and/or the && operators to combine your conditions.

Examples:

1.

do
{
   ...
} while (a || b);

will loop while either a or b are true.

2.

do
{
...
} while (a && b);

will loop while both a and b are true.

Upvotes: 10

BoBTFish
BoBTFish

Reputation: 19757

while ( !a && !b ) // while a is false and b is false
{
    // Do something that will eventually make a or b true.
}

Or equivalently

while ( !( a || b ) ) // while at least one of them is false

This table of operator precedence will be useful when creating more complicated logical statements, but I generally recommend bracketing the hell out of it to make your intentions clear.

If you're feeling theoretical, you might enjoy De Morgan's Laws.

Upvotes: 7

broetchen
broetchen

Reputation: 459

do {
  // ...
} while (strength != 100 || estrength != 100)

Upvotes: 2

flavian
flavian

Reputation: 28511

do {

    srand (time(0));
    estrength = rand()%100);

    srand (time(0));
    strength = rand()%100);

} while(!estrength == 100 && !strength == 100 )

Upvotes: 2

Related Questions