Nested "if-then-else" Statements

This section describes nested 'if-then-else' statements, where an 'if-then-else' statement contains another 'if-then-else' statement.

In certain situations, the second contained sub-statement of an "if-then-else" statement needs to be another "if-then-else" statement. The result is a nested "if-then-else" statement.

Some times, you may have many "if-then-else" statements nested. Here is an example of 5 "if-then-else" statements nested together.

```if (...) contained_statement // 1st "if" statement
else if (...) contained_statement // 2st "if" statement
else if (...) contained_statement // 3rd "if" statement
else if (...) contained_statement // 4th "if" statement
else if (...) contained_statement // 5th "if" statement
else contained_statement
```

Note that a nested "if-then-else" statement can be written without indentations to indicate its nesting levels. But you need to remember that it is still a statement of 5 "if-then-else" statements nested together. It is not a single "if" statement with multiple contained sub-statements, which is not supported in Java.

```if (...) contained_statement      // 1st "if" statement
else if (...) contained_statement // 2st "if" statement
else if (...) contained_statement // 3rd "if" statement
else if (...) contained_statement // 4th "if" statement
else if (...) contained_statement // 5th "if" statement
else contained_statement
```

The above statement is actually equivalent to the following from syntax structure point of view.

```if (...) contained_statement      // 1st "if" statement
else { if (...) contained_statement // 2st "if" statement
else { if (...) contained_statement // 3rd "if" statement
else { if (...) contained_statement // 4th "if" statement
else { if (...) contained_statement // 5th "if" statement
else contained_statement } } } }
```

Here is a sample program that shows you how to use nested "if-then-else" statements:

```/* NestedIfThenElseStatementTest.java
*/
import java.time.LocalTime;
class NestedIfThenElseStatementTest {
public static void main(String[] arg) {
java.io.PrintStream out = System.out;
LocalTime now = LocalTime.now();
int hour = now.getHour(); // from 0 to 23

out.println("5 \"if-then-else\" statements nested together:");
if (hour >= 6 && hour < 12)
out.println("   Good morning!");
else if (hour >= 12 && hour < 18)
out.println("   Good afternoon!");
else if (hour >= 18 && hour < 22)
out.println("   Good evening!");
else if (hour >= 22 && hour < 24)
out.println("   Good night!");
else if (hour >= 0 && hour < 6)
out.println("   Why are you not sleeping?");
else
out.println("   Something wrong with clock!");
out.println("   Current time is "+now);
}
}
```

If you compile and run the above program, you will see:

```herong> java NestedIfThenElseStatementTest.java

5 "if-then-else" statements nested together:
Good afternoon!
Current time is 14:29:50.479207
```