Consider the following unformatted nested if-else
Java code
JavaScript
x
if (condition 1)
if (condition 2)
action 1;
else
action 2;
My question is: according to the Java language specifications, to what if does the else
branch apply?
By hand-reformatting and adding braces, which of these two is correct?
Block 1:
JavaScript
if (condition 1) {
if (condition 2) {
action 1;
} else
action 2;
}
}
Block 2:
JavaScript
if (condition 1) {
if (condition 2) {
action 1;
}
}
else {
action 2;
}
Advertisement
Answer
From the Java Language Specification:
The Java programming language, like C and C++ and many programming languages before them, arbitrarily decrees that an else clause belongs to the innermost if to which it might possibly belong.