The If-Else Statement

From CompSciWiki
Jump to: navigation, search

COMP 1010 Home > Control Stuctures


Introduction

The If-Else statement adds further functionality to the If-Statement discussed in the previous section. If-Else Statements add the ability to tell the computer what to do if the condition tested in the if-statement returns a value of false.

The If-Else Statement

Sometimes it is not sufficient to simply tell the computer "If this condition is true execute this code". Sometimes you will want to say "If this condition is true execute this code, otherwise execute a different set of code". A simple way of doing this would be to have a separate if-statement that will return the opposite value of the first:

 if (number%2 == 0)
 {
     System.out.println("The number is even");
 }//if

 if (number%2 !=0)
 {
     System.out.println("The number is odd");
 }//if 

While this approach works, it is needlessly complicated. There is a better way of doing the same task, but with less work. The keyword else can be used to tell the computer to execute a different body of code only if the condition of an if-statement returns false. We can rewrite the code from above to take advantage of this keyword like this:

 if (number%2 == 0)
 {
     System.out.println("The number is even");
 }//if
 else
 {
     System.out.println("The number is odd");
 }//else 

If we step through this last example the computer will evaluate the condition number%2 == 0 and check the result. If the result is true the body of the if-statement will be executed, just like in the previous examples. If the result is false then the body of the else-statement is executed.

The keyword else and the corresponding body form what is called an else-block or else-statement. It is very important to note that an else-block is always associated with an if-block, and each if-block can only ever be associated with zero or one else-blocks.

Together the keywords if, else, the condition, and the two bodies form a code-block known as an if-else block or if-else statement.

Anatomy of the If-Else Statement

The if-else statement is made up of the following parts:

  • the keyword if
  • the condition
  • the body of the if-statement
  • the keyword else
  • the body of the else-statement

The general form of an if-else statement is:

 if (condition)
 {
     //code to execute if condition is true
 }

 else
 {
     //code to execute if condition is false
 } 

If-Else Ladders

Now that you know that if statements be be connected using an else, we can take that one step further and throw else-if statements into the mix. We use else-if' statements to create long ladders of if statements. Generally, whenever you have a bunch of if statements that are related to each other, you combine them into one big ladder of statements. This can also prevent certain problems from occurring. Let'ss begin by presenting a simple problem below.

 int x = 5;

 if (x > 4)
 {
   System.out.println("x is greater than 4");
 }

 if (x > 2)
 {
   System.out.println("x is greater than 2 but less than 5");
 } 

In this case both lines will be printed because x is greater than 2 and 4. We only want to print out "x is greater than 4". We can use an if-else statement to fix this problem. Here is the corrected code:

 int x = 5;

 if (x > 4)
 {
   System.out.println("x is greater than 4");
 }// if 
 else if (x > 2)
 {
   System.out.println("x is greater than 2 but less than 5");
 }// else if 

The addition of the else-if statement has solved the problem at hand. Now the correct output will be printed regardless of the value of x.

You are allowed to have as many else-if statements as you want. The only requirement is that the start of the ladder begins with an if statement. You are also allowed to use else statements. The requirement for else statements is that you are only allowed 1 and it must be at the very end of the ladder. The next program will display a full blown if - else if - else ladder.

This program asks the user for two sports scores and tells the user which team won or if the game was a draw. The key components to pay attention to are lines 07 to 14.

 int scoreA = 25;
  int scoreB = 30;

  if(scoreA > scoreB)
  {
      System.out.println("Team A won");
  }//if

  else if(scoreA < scoreB)
  {
     System.out.println("Team B won");
  }//else if

  else
  {
      System.out.println("The game was a draw");
  }//else 

The preceding code may also be written as:

 int scoreA = 25;
  int scoreB = 30;

  if(scoreA > scoreB)
      System.out.println("Team A won");
  else if(scoreA < scoreB)
     System.out.println("Team B won");
  else
      System.out.println("The game was a draw"); 

Summary

The if-else statement is used when you want to execute a certain piece of code when the condition is true, and if the condition is false you would like a different piece of code to execute. Note that this could also be done with multiple if-statements, but this is very inefficient, and also very complicated.


The else-if statement is used if you want to compare more than one condition, where the second condition happens only if the first fails. These else-if can be chained for as long as you want, and can also end with an else statement.

Previous Page: The If Statement Next Page: Conditions