Java 我们需要什么;否则";“如果是区块,则进行施工”;如果;他回来了吗?
我知道以下方法也一样,但哪种变体更好,为什么Java 我们需要什么;否则";“如果是区块,则进行施工”;如果;他回来了吗?,java,Java,我知道以下方法也一样,但哪种变体更好,为什么 public boolean method() { if (condition) { return otherMethod(); } else { return true; } } 或 或者这是更好的变体 public boolean method() { return condition ? otherMethod() : true; } 同样的结果
public boolean method() {
if (condition) {
return otherMethod();
} else {
return true;
}
}
或
或者这是更好的变体
public boolean method() {
return condition ? otherMethod() : true;
}
同样的结果,不同的风格,只是品味的问题
我更喜欢第二种解决方案,因此返回语句与实际语句相关(如果在本例中是这样的话),并且冗余更少
此外,“Else”语句增加了反转if条件的复杂性,使其可读性降低。相同的结果,不同的风格,只是口味的问题
我更喜欢第二种解决方案,因此返回语句与实际语句相关(如果在本例中是这样的话),并且冗余更少
此外,“Else”语句增加了反转if条件的复杂性,使其可读性降低。对此我有一个非常强烈的看法,即在这种情况下使用
Else
块是一种糟糕的风格
一旦逻辑变得足够复杂,使用else
将极大地妨碍可读性
例如:
if (cond1)
then return
else
// Do some processing
if (cond2)
then return
else
// Do some processing
if (cond3)
....
因此,您最终得到了一个完全不需要的深层嵌套结构,因为它等效于:
if (cond1)
then return
// Do some processing
if (cond2)
then return
// Do some processing
if (cond3)
....
我对此有一个非常强烈的看法,即在这种情况下使用
else
块是一种糟糕的风格
一旦逻辑变得足够复杂,使用else
将极大地妨碍可读性
例如:
if (cond1)
then return
else
// Do some processing
if (cond2)
then return
else
// Do some processing
if (cond3)
....
因此,您最终得到了一个完全不需要的深层嵌套结构,因为它等效于:
if (cond1)
then return
// Do some processing
if (cond2)
then return
// Do some processing
if (cond3)
....
完全一样。这只是一种不同的风格。选择你喜欢的 就我个人而言,通常我更喜欢第二个选项,因为如果代码很长,则不会在块中缩进。在我看来,它更具可读性 想象
public boolean myFunction() {
if (test) {
return true;
}
...
...
...
...
// Very long code
return false;
}
而不是
public boolean myFunction() {
if (test) {
return true;
} else {
...
...
...
...
// Very long code
return false;
}
}
完全一样。这只是一种不同的风格。选择你喜欢的 就我个人而言,通常我更喜欢第二个选项,因为如果代码很长,则不会在块中缩进。在我看来,它更具可读性 想象
public boolean myFunction() {
if (test) {
return true;
}
...
...
...
...
// Very long code
return false;
}
而不是
public boolean myFunction() {
if (test) {
return true;
} else {
...
...
...
...
// Very long code
return false;
}
}
我更喜欢第二种选择 以下是我为自己辩护的理由: 1) 减少嵌套代码,降低代码复杂度 2) 允许提前归还:
public boolean isValidUser(User user) {
if (user == null) {
return false;
}
String details = getUserDetails(user);
if (details == null) {
return false;
}
...
return true
}
vs
我更喜欢第二种选择 以下是我为自己辩护的理由: 1) 减少嵌套代码,降低代码复杂度 2) 允许提前归还:
public boolean isValidUser(User user) {
if (user == null) {
return false;
}
String details = getUserDetails(user);
if (details == null) {
return false;
}
...
return true
}
vs
我认为这只是偏好的问题。我喜欢不使用
else
以获得更好的可读性。对于我来说,第二个选项更易于阅读,并且使用更少的代码。如果您的代码是可读的,并且保存一些行,我认为是最好的选择。第二个代码段的优点是在If语句之外的代码中缩进更少,这可以使代码更可读,如果您在该部分有很多代码,其中可能包含其他构造(循环、更多If语句等)需要进一步缩进的。@khelwood您的意思是返回条件吗?otherMethod():true6个答案中没有一个考虑到这一点。我想我的意思是return(condition | | otherMethod())代码>或可能返回(!condition | | otherMethod())代码>取决于问题中未指定的if条件的形式。我认为这只是偏好的问题。我喜欢不使用else
以获得更好的可读性。对于我来说,第二个选项更易于阅读,并且使用更少的代码。如果您的代码是可读的,并且保存一些行,我认为是最好的选择。第二个代码段的优点是在If语句之外的代码中缩进更少,这可以使代码更可读,如果您在该部分有很多代码,其中可能包含其他构造(循环、更多If语句等)需要进一步缩进的。@khelwood您的意思是返回条件吗?otherMethod():true6个答案中没有一个考虑到这一点。我想我的意思是return(condition | | otherMethod())代码>或可能返回(!condition | | otherMethod())
取决于问题中未指定的if条件的形式。是的,但是为什么不使用else if
来避免深度嵌套的结构呢?这可能并不总是可能的。例如,在这些条件检查之间,我可能需要做一些处理。我同意安迪的观点。即使else if
从技术上讲在Java中不是一个关键字,但大多数人基本上都将其视为一个关键字。例如,我的IDE设置为总是使用大括号,除非在else-if中。我只是不喜欢冗余代码,所以即使在这些条件检查之间没有处理,我也总是使用if
,而不是else-if
,这是有效的,但相对不常见——我个人不会围绕它构建样式指南。YMMV:)好的,是的,但是为什么不使用else if
来避免深度嵌套的结构呢?这可能并不总是可能的。例如,在这些条件检查之间,我可能需要做一些处理。我同意安迪的观点。即使else if
从技术上讲在Java中不是一个关键字,但大多数人基本上都将其视为一个关键字。例如,我的IDE设置为总是使用大括号,除非在else-if中。我只是不喜欢冗余代码,所以即使在这些条件检查之间没有处理,我也总是使用if
,而不是else-if
,这是有效的,但相对不常见——我个人不会围绕它构建样式指南。YMMV:)