【发布时间】:2018-12-01 15:05:03
【问题描述】:
由于我找不到与我的构造相似的问题,所以我要问它。
我有以下代码:
for (Object o : array1) {
for (Object o2 : array2) {
if (condition1) {
//get a variable for condition2 (depends on iteration elements)
if (condition2) {
if (condition3) {
//do something
} else if (condition4) {
//do something
}
}
}
}
}
我也可以写成
for (Object o : array1) {
for (Object o2 : array2) {
if (condition1 && condition3) {
// get a variable for condition2 (depends on iteration elements)
if (condition2) {
// do something
}
} else if (condition1 && condition4) {
// get a variable for condition2
if (condition2) {
// do something
}
}
}
}
这会以同样的方式工作。在第一个示例中,我尝试尽可能多次使用代码,而在第二个示例中,我必须多次使用相同的代码。
现在我读到on this question,如果可能的话,应该避免嵌套。然而,在我的理解中,不要多次使用第一个示例中的相同代码也更简洁。
我的问题是,是否应该避免重复使用相同代码的成本?我在这里询问的是最佳实践/标准,而不是意见。
我知道我可以将它移到一个单独的方法中,但最终我可能会拥有大约相同数量的代码。
编辑:
在 Lino 的回答和 cmets 的帮助下,我想出了以下构造:
for (Object o : array1) {
// get a variable for condition2 (depends on iteration elements)
if (condition2) {
for (Object o2 : array2) {
if (condition1) {
if (condition3) {
// do something
} else if (condition4) {
// do something
}
}
}
}
}
【问题讨论】:
-
目前两个 sn-ps 不做同样的事情。在第一个条件中,仅在满足条件 1 和 2 时才执行条件 3 和 4。在第二种情况下,它有些不同,如果条件 2 可以满足,如果 1 和 3 或如果 1 和 4 满足
标签: java multiple-conditions nested-if