Skip to main content

Section 2.10 Multi-Selection: else-if Statements

Using if/else statements, you can even pick between 3 or more possibilites. Just add else if for each possibility after the first if, and else before the last possibility.
// 3 way choice with else if
if (boolean expression)
{
   statement1;
}
else if (boolean expression)
{
   statement2;
}
else
{
   statement3;
}
Coding Exercise
Here is a flowchart for a conditional with 3 options like in the code above.
Figure 2.10.1. Figure 1: The order that statements execute in a conditional with 3 options: if, else if, and else

Note 2.10.2.

Another way to handle 3 or more conditional cases is to use the switch and break keywords. However, in the context of this book, we will not be utilizing them. Instead, we will focus on conditional logic using if-else statements, which provide similar functionality as they are more versatile for handling complex conditions. For a tutorial on using switch see https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html.

Subsection 2.10.1 Summary

  • A multi-way selection is written when there are a series of conditions with different statements for each condition.
  • Multi-way selection is performed using if-else-if statements such that exactly one section of code is executed based on the first condition that evaluates to true.
// 3 way choice with else if
if (boolean expression)
{
   statement1;
}
else if (boolean expression)
{
   statement2;
}
else
{
    statement3;
}

Exercises 2.10.2 Exercises

1.

Run the code below and try changing the value of x to get each of the three possible lines in the conditional to print.

2.

3-4-2: What does the following code print when x has been set to -5?
if (x < 0)
{
   System.out.println("x is negative");
}
else if (x == 0)
{
   System.out.println("x is zero");
}
else
{
   System.out.println("x is positive");
}
  • x is negative
  • When x is equal to -5 the condition of x < 0 is true.
  • x is zero
  • This will only print if x has been set to 0. Has it?
  • x is positive
  • This will only print if x is greater than zero. Is it?

3.

3-4-3: What does the following code print when x has been set to 2000?
if (x < 0)
{
   System.out.println("x is negative");
}
else if (x == 0)
{
   System.out.println("x is zero");
}
else
{
   System.out.println("x is positive");
}
  • x is negative
  • This will only print if x has been set to a number less than zero. Has it?
  • x is zero
  • This will only print if x has been set to 0. Has it?
  • x is positive
  • The first condition is false and x is not equal to zero so the else will execute.

4.

3-4-4: What does the following code print when x has been set to .8?
if (x < .25)
{
    System.out.println("first quartile");
}
else if (x < .5)
{
    System.out.println("second quartile");
}
else if (x < .75)
{
    System.out.println("third quartile");
}
else
{
    System.out.println("fourth quartile");
}
  • first quartile
  • This will only print if x is less than 0.25.
  • second quartile
  • This will only print if x is greater than or equal to 0.25 and less than 0.5.
  • third quartile
  • The first only print if x is greater than or equal to 0.5 and less than 0.75.
  • fourth quartile
  • This will print whenever x is greater than or equal to 0.75.

5.

The else-if connection is necessary if you want to hook up conditionals together. In the following code, there are 4 separate if statements instead of the if-else-if pattern. Will this code print out the correct grade? First, trace through the code to see why it prints out the incorrect grade. Use the Code Lens button. Then, fix the code by adding in 3 else’s to connect the if statements and see if it works.

6.

Finish the following code so that it prints “Plug in your phone!” if the battery is below 50, “Unplug your phone!” if it is above 100, and “All okay!” otherwise. Change the battery value to test all 3 conditions.
You have attempted of activities on this page.