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