Java Tutorials - Herong's Tutorial Examples - v8.22, by Herong Yang
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
* Copyright (c) HerongYang.com. All Rights Reserved.
*/
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
Table of Contents
Execution Process, Entry Point, Input and Output
Primitive Data Types and Literals
What Is Control Flow Statement
►Nested "if-then-else" Statements
Fall-Through Behavior of "switch" Statements
Bits, Bytes, Bitwise and Shift Operations
Managing Bit Strings in Byte Arrays
Reference Data Types and Variables
StringBuffer - The String Buffer Class
System Properties and Runtime Object Methods
Generic Classes and Parameterized Types
Generic Methods and Type Inference
Lambda Expressions and Method References
Java Modules - Java Package Aggregation
Execution Threads and Multi-Threading Java Programs
ThreadGroup Class and "system" ThreadGroup Tree
Synchronization Technique and Synchronized Code Blocks
Deadlock Condition Example Programs
Garbage Collection and the gc() Method
Assert Statements and -ea" Option