1

我想创建一个while循环,它将在两个条件之一下继续运行,其中选择的一个被确定为条件。例如,它将是类似的东西while(if (c = true) a<b else b<a)。有什么简单的语法吗?还是我必须采取蛮横的方式并执行以下操作?

if (c = true) 
{ 
   while(a<b)
   {
   }
} 
else 
{
   while(b<a)
   {
   }
}
4

2 回答 2

3

您可以利用布尔求值的短路特性,并且:

while ((c && a < b) || (!c && b < a)) {
    // ...
}

但是,您可能会发现这很难阅读。另一种方法可能是使用条件运算符:

while (c ? (a < b) : (b < a)) {
    // ...
}
于 2012-07-26T04:47:45.833 回答
1

最简单的方法是:

while( c && a<b || !c && b<a )
{
  ...
}

抱歉,如果我的 C# 语法不正确。我是一个 C++ 迷。=)

于 2012-07-26T04:49:53.460 回答