这两个代码片段中哪个更好

ase*_*a38 1 java

//first
if(num % 2 == 0 ) {
  isEven = true;
}


//second
isEven = (num %2 == 0);
Run Code Online (Sandbox Code Playgroud)

什么是最好的事情,首先是一个代码味道的情况?

Jon*_*eet 7

他们不会做同样的事情 - 如果num是奇怪的话,第一个离开isEven它的前一个值,第二个离开它false.

我会:

  • 尝试在声明点初始化变量,之后不要更改它.
  • 通常使用第二种形式优先于第一种形式.

当一个if块的主体只是设置一个变量,并且该值可以表示为块的条件的一些简单修改if,并且你总是想设置一些值,我只会使用简单的赋值.

这同样适用于return语句-我宁愿有:

return (num % 2 == 0); // Or (num & 1 == 0)
Run Code Online (Sandbox Code Playgroud)

if (num % 2 == 0) {
    return true;
} else {
    return false;
}
Run Code Online (Sandbox Code Playgroud)