我不知道我怎样才能缩短这些if语句:C#缩短2个相似的if语句
if (x == 0)
{
z = 7;
y = 7;
}
if (x == 7)
{
z = 7;
if (y != 7)
{
y = 7;
}
}
我觉得自己像一个三元就可以了,但我不知道如何实现它
我不知道我怎样才能缩短这些if语句:C#缩短2个相似的if语句
if (x == 0)
{
z = 7;
y = 7;
}
if (x == 7)
{
z = 7;
if (y != 7)
{
y = 7;
}
}
我觉得自己像一个三元就可以了,但我不知道如何实现它
这对我来说看起来够短:
if (x == 0 || x == 7)
{
y = z = 7;
}
一个if语句可能是您的示例中最好的。但有些问题可以通过switch语句更好地解决。使用三元将
switch(x)
{
case 0:
case 7:
y = z = 7;
break;
}
像
//variable initialization as needed.
y = (x == 0 || x == 7) ? 7 : y;
// y = (ConditionThatWouldReturnBool) True(?) doThisPart False(:) doThisPart
z = (x == 0 || x == 7) ? 7 : z;
你能解释一下为什么吗? – NoSaidTheCompiler 2014-12-07 20:59:00
你破坏了OP的逻辑。如果条件为假,则将z设置为y。当条件错误时,OP没有改变任何变量。 – Blorgbeard 2014-12-07 21:00:08
这是一个错字!如果它是假的,请保留'y'。不过,我可以看到我的z = y的问题。谢谢。 – NoSaidTheCompiler 2014-12-07 21:02:45
你不能用一个单一的三元,可以用2个ternarys做,因为三元无法做到“无”,并具有:所以我想我会添加它评估到一个值 – Akash 2014-12-07 20:48:26
这个问题应该已经acctualy beeen问'代码审查' – t3chb0t 2014-12-07 20:49:08
我认为你最好考虑使用||而不是三元操作符。 – VahidNaderi 2014-12-07 20:49:28