制定条件循环条件?

时间:2012-07-26 04:44:52

标签: c# loops while-loop conditional-statements

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

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

2 个答案:

答案 0 :(得分:3)

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

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

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

while (c ? (a < b) : (b < a)) {
    // ...
}

答案 1 :(得分:1)

最简单的方法是:

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

如果我没有正确的C#语法,请道歉。我是C ++迷。 =)