eclipse在Java中执行If和Elseif语句之间的代码
我得到了这个密码:
if (conditionX) {
doX();
}
else if (conditionY) {
boolean isSomethingTrue = findOutIfSomethingIsTrue();
if (anotherConditionIsTrue) {
doY();
}
}
XYZPojo xyzPOJO = getXYZPOJO();
else if (xyzPOJO.getValueX().contains("xyz")) { // <- eclipse wants me to delete this 'else' statement
doXYZ();
}
当我运行这段代码时,eclipse抱怨"Syntax error on token "else", delete this token"
。我理解这是因为我有代码:
boolean conditionXYZ = checkIfXYZIsTrue();
在两个else if
语句之间。但是我不能检查conditionXYZ
的值,除非我在两个else if
语句之间设置了conditionXYZ
的值
我在SO上发现的唯一其他类似问题是this one,它建议使用两个if语句。问题是如果conditionY
为真,我不希望对conditionXYZ
进行计算
我的另一个选择是使用两个if statements
,并为每个if语句添加一个return语句。但我觉得这个解决方案在代码设计方面并不优雅
我的第三个选项是在执行任何if语句之前执行checkIfXYZIsTrue()
,但这不是有效的,因为如果conditionY
为真,我们不需要检查conditionXYZ
有什么想法吗
提前谢谢
# 1 楼答案
我知道这很古老,但鉴于没有人给出我的答案,我想我会发布我的答案,以防其他人在这里寻找选择
在计算if/else语句上方的conditionXYZ之前,可以使用三元运算符检查conditionX和conditionY是否为false
# 2 楼答案
Java语法不允许在if/else链之间使用语句(它们不在各自的块中)
您可以在
else if
条件中执行第三个条件:或者,最后一个
else
仍然可以看起来像: