Nested if-else behaviour without braces

if-statement, java, syntax

Solution

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.

Problem

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; } ```

Original source