Consider the following unformatted nested if-else
Java code
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:
if (condition 1) { if (condition 2) { action 1; } else action 2; } }
Block 2:
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.