您通常在之前设置默认值还是在else中设置默认值?

Dar*_*ein 6 optimization

你做了以下哪一项:

var = true;
if (...) var = false;
Run Code Online (Sandbox Code Playgroud)

要么

if (...) var = false;
else var = true;
Run Code Online (Sandbox Code Playgroud)

你选择的还是其他原因?

我正在努力的前提是var没有发生任何其他事情.下一行代码可能是这样的:

if (var) { ... }
Run Code Online (Sandbox Code Playgroud)

kro*_*old 9

var = {...}怎么样直接因为它是布尔值?

  • 这很好,但只有当 if 块中只有一个赋值语句并且变量是布尔值(如这个简单示例中所示)时才有效。 (2认同)

Ros*_*oss 5

我更喜欢Java中的第二个,做这样的事情:

int x;
if (cond) {
  x = 1;
} else {
  x = 5;
}
Run Code Online (Sandbox Code Playgroud)

因为如果稍后更改某些内容(例如,我将该else块转换为a else if),编译器将告诉我该变量未能初始化,如果我使用了您的第一个策略,我可能会错过.