if ((one.option != two.option) && (one.side == two.side))
我需要查看上面的以上商业逻辑
所以我这样写了
if((data[0].getData.value()!=data[1].getData.value())
&&(data[0].getAction().value()==data[1].getAction().value()))
这是正确的吗?
假设数据[0]代替一个 getData.value()代替top if条件中显示的选项。
我担心if条件中的括号
答案 0 :(得分:2)
这是正确的,但我个人不打扰这个特殊情况下的括号。然而, 会使用更多的空格。我写的是:
if (data[0].getData.value() != data[1].getData.value()
&& data[0].getAction().value() == data[1].getAction().value())
如果你真的想要括号,我会把它写成:
if ((data[0].getData.value() != data[1].getData.value())
&& (data[0].getAction().value() == data[1].getAction().value()))
如果我想区分,例如
,我通常只会包括括号if ((x && y) || z)
和
if (x && (y || z))
当然,这假设值是适合与==
和!=
进行比较的值。如果它们是字符串或其他对象,则应该使用equals
代替。
答案 1 :(得分:1)
两条一般性评论。
首先,考虑对这种事情使用测试,特别是测试驱动开发,首先编写测试,然后失败,然后只编写足够的测试来传递测试。那么代码是否正确将毫无疑问。
This是一项练习,可以帮助您学习这种方法。
其次,根据该代码段,您的代码看起来可能会使用一些重构来明确意图,例如将它们放入一个名称清晰(在您的情况下可能是两个)的方法中。 TDD倾向于产生那种干净的代码,只要你在测试通过后花时间重构。
答案 2 :(得分:0)
你的括号是正确的。
答案 3 :(得分:0)
您的if语句有效,但很难阅读。我建议遵循其他人关于空白空间的建议并将值分配给变量以提高可读性。编写良好的代码不应该需要注释,它应该是你自己明确的数据!