4

我将如何制作一个循环来执行循环,直到满足多个条件之一。例如:

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

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

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

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

4

4 回答 4

10

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

例子:

1.

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

a将在其中一个或b为真时循环。

2.

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

a当两者都b为真时将循环。

于 2013-05-15T14:45:29.063 回答
7
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

在创建更复杂的逻辑语句时,此运算符优先级表将很有用,但我通常建议将其用括号括起来以明确您的意图。

如果你感觉理论,你可能会喜欢德摩根定律

于 2013-05-15T14:46:02.310 回答
2
do {

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

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

} while(!estrength == 100 && !strength == 100 )
于 2013-05-15T14:46:14.557 回答
2
do {
  // ...
} while (strength != 100 || estrength != 100)
于 2013-05-15T14:47:22.980 回答