while循环使用C ++中的多个条件

时间:2013-05-15 14:44:09

标签: c++ do-while

如果满足多个条件之一,我将如何创建一个循环来执行循环。例如:

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

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

有点蹩脚的例子,但我想你们都会理解。

我知道&&,但我希望它只满足其中一个条件并继续前进,而不是两者。

4 个答案:

答案 0 :(得分:9)

使用||和/或&&运算符组合您的条件。

示例:

<强> 1

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

将循环,ab为真。

<强> 2

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

将循环,而ab都为真。

答案 1 :(得分:5)

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

或等效

while ( !( a || b ) ) // while at least one of them is false
在创建更复杂的逻辑语句时,

This table of operator precedence会很有用,但我通常建议将其包含在内,以明确您的意图。

如果你感觉理论上的,你可能会喜欢De Morgan's Laws

答案 2 :(得分:2)

do {

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

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

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

答案 3 :(得分:2)

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