是否存在以下情况:
if (condition) {
statement
} else {
if (condition2) {
statement
} else {
statement
}
}
不等于:
if (condition) {
statement
} else if (condition2) {
statement
} else {
statement
}
如果有案件,我很难找到案件。如果有人知道一个反例,或者他们肯定是等同的,那么你的输入将非常感激。
答案 0 :(得分:2)
您问题中的两个陈述完全相同。也就是说,当您想要再次进入if (condition) {
statement
} else {
perform some common steps.
if (condition2) {
statement
} else {
statement
}
}
块之前执行一些常见步骤时,第一个语句更有用。例如:
event_ap
Ereignis a_nr tnr date time knr maschnr
PAN 123 2203 2017-01-23 8:00 11 x222
PAN 132 2203 2017-01-22 8:00 22 x222
PAB 123 2203 2017-01-23 9:00 11 x222
PAN 555 2203 2017-01-23 6:00 33 x222
PAN 555 2201 2017-01-23 11:00 44 x222
PAB 222 2202 2017-01-23 10:00 44 x222
pers_stm
name knr
Test1 11
Test2 22
Test3 33
Test4 44
答案 1 :(得分:1)
两个条件结构都是相同的。
在第一种情况下,你有更多的选项,比如你可以执行一些代码,其中第二个if或else变为true,块必须执行。
if (condition1) {
...
} else {
...
if (condition2) {
...
} else {
...
}
...
}
但首先要更简单易读。
您也可以选择使用性能更高的开关。
答案 2 :(得分:0)
不,这些总是完全等同。
他们完全等同的原因是第一个示例中块中唯一的语句是一个if
语句;所以删除块根本不会改变语义,因为它只包装一个没有任何变量声明的语句,等等。
对比:
if (condition) {
statement
} else {
String foo = "bar";
if (condition2) {
statement
} else {
statement
}
}
现在,除了您的版本中的单个if
之外,该块正在执行某些操作,因此情况有所不同。
但是,由于您的版本除了if
之外没有任何,因此它们完全相同。
答案 3 :(得分:0)
else之后的括号是不必要的,因为之后有一条指令(第二条if),所以除非你因为某种原因解析java文件,否则在任何情况下它们都不应该是
答案 4 :(得分:0)
条件为真或假。只有四个选项有四个两个条件。 在这两种情况下,三个语句中只有一个将被执行,并且在两种情况下都是相同的,因为您可以尝试使用所有四个选项。 因此,即使声明会对条件产生影响,这也不会产生影响。所以我敢打赌它是等价的。