我对编程很新,在我最近的工作中,我创建了以下if if语句嵌套在for循环中:
for (int i = 0; i < originalColumnCells.Count; i++)
{
if (originalColumnCells[i] == sortedColumnCells[i])
{
// Do Nothing
}
else
{
return false;
}
}
在if语句中,正如您所看到的,如果语句为true,我希望该方法不执行任何操作。在这种情况下,是否有正确的语法来注释掉“// Do Nothing”,还是应该将其作为开放和封闭的括号?或者也许把括号放在if行的末尾?
任何有关“正确”处理此方法的建议都将受到赞赏
答案 0 :(得分:8)
为什么不否定表达?
for (int i = 0; i < originalColumnCells.Count; i++)
{
if (originalColumnCells[i] != sortedColumnCells[i])
{
return false;
}
}
答案 1 :(得分:4)
将if语句更改为!=并一起删除else:
if (originalColumnCells[i] != sortedColumnCells[i])
{
return false;
}
// No else
答案 2 :(得分:1)
您可以反转声明:
if (originalColumnCells[i] != sortedColumnCells[i])
但接下来是别的。有时你想表明你已经考虑过else
分支的需要,但你不需要它。 (如果我有更复杂语句的代码块,我有时会想要一个)然后我认为在这些方面使用的东西很好:
else
{
// no action, already handled later on in bla bla
}
答案 3 :(得分:1)
一般来说,你想解释一些不寻常的事情。
{
}
这应该是空的吗?有什么东西被删除了?最好明确表达你的意图:
{
// do nothing
}
但是 - 一般而言 - 你可能想要改变你的if语句,这样你就不会以空语句结束。我看到几个答案说要将比较从==
更改为!=
。但是,像
if (a > b && c == d || Object.ReferenceEquals(null, e)) ...
为了反转这一点,您可以将>
更改为<=
,将==
更改为!=
,更改&&
和||
运算符等我用!
反转整个语句而不是尝试更改每个比较运算符,我觉得最简单:
if (!(a > b && c == d || Object.ReferenceEquals(null, e))) ...