//first
if(num % 2 == 0 ) {
isEven = true;
}
//second
isEven = (num %2 == 0);
最好的做法是什么,第一种情况是代码嗅觉?
答案 0 :(得分:7)
他们没有做同样的事情 - 如果num
是奇数,第一个留下isEven
的前一个值,第二个将其设置为false
。
我会:
当if
块的主体只设置变量时,该值可以表示为某些简单修改{的条件{1}}阻止,总是想要设置一些值,我只想使用简单的赋值。
if
语句也是如此 - 我宁愿拥有:
return
大于
return (num % 2 == 0); // Or (num & 1 == 0)
答案 1 :(得分:2)
在不了解周围环境的情况下,这两个版本的语义实际上有所不同。
如果isEven
是偶数,则第一个版本只会更改num
的值。后一版本将始终更新isEven
的值。所以我肯定更喜欢后者,因为它确保isEven
拥有有用的语义值。