Conditional statements are fundamental for imperative programming languages, including Java. They’re used to instruct a program to act differently based on whether something is true or false. Java’s
if statement is the most basic conditional statement - it evaluates a boolean expression and executes code based on its outcome.
To follow along, you need to have a basic understanding of equality, relational, and conditional operators and how to form boolean expressions with them. You should be good to go if you get why
1 > 0 evaluates to
num == 5 evaluates to
num equals anything other than
if statement is the most fundamental control flow statement. Once you understand it, the others will come easily. Essentially, an
if statement tells a program to execute the following block of code only if the accompanying condition is true.
Here you can see the anatomy of an
num is declared and set to
5. What comes after that is the
It starts with the keyword
if followed by a pair of parenthesis. Between the parenthesis you need to provide a condition. A condition is a boolean expression - something that evaluates to either
false. It can be a variable of type
boolean, equality, relational, or conditional expressions (like
num == 5), or even a method call that returns a
boolean. Boolean object wrappers are also valid.
After the parenthesis you can see a pair of curly braces defining a block of code, often called the if block or if branch. That code is only executed if the condition evaluated to
It is common practice to indent your if block as it provides a visual hint for readers. For code blocks that contain only a single line of code you can omit the curly braces - whether you should is a different discussion.
In many cases you might want to do two different things based on whether a condition is true or not. This is commonly referred to as
else. If a condition holds true, then execute the following block of commands, otherwise (else) execute a different block, often called the else block or else branch. With this you can optionally provide an alternative execution path that will be followed if the condition evaluates to
This example is fairly similar to the previous one - again
num is declared and set to
5. But this time the boolean test is slightly different! Only if
num is greater than
10, will the expression evaluate to
true. Since this is not the case, the test evaluates to
false. According to the rules we defined earlier, the following block of code cannot be executed. Instead, the program’s execution jumps directly to the
else block to handle the
Sometimes you might want to test against multiple boolean expressions, so plain
else does not quite cut it.
For example, if a condition holds true, then do something, else if another condition holds true, then do that another thing. You can of course nest a new
if statement inside an
else block but that gets rather unreadable.
Instead it is common practice in Java to pull the second
if up into the same line as the
else, thus chaining the statements together. This allows you to check against multiple conditions and pick the first block of code that passes its boolean test.
In this example, we have a String variable
callsign. The program first checks if it equals
"Iceman". This obviously returns
false, so the execution jumps into the first
else where a new
if waits. Then
callsign is compared against
"Maverick". This returns
true and the following block of code is executed.
You can make use of the
else statement to provide a default execution path, which will be executed if none of the conditions evaluated to
true. In an
if-else-if chain, only one block of code gets executed, others are ignored.
if statement is the most basic conditional statement. It checks a condition, which is any boolean expression, and runs a block of code if it is true. The
else keyword provides an alternative execution path that gets executed if the condition is false. To test multiple conditions you can chain
if statements with
Although this article gave you an overview of the variations of
if statements, it did not cover all the conditional statements available in Java. First of all, we did not talk about the ternary operator, which can be summarized as a shortcut for the
if statement. Long
else if chains can potentially be replaced with switch statements. And Sometimes it is even possible to avoid
if statements altogether using dynamic dispatch.