Difference between revisions of "The If-Else Statement"

From CompSciWiki
Jump to: navigation, search
(If-Else Ladders)
Line 1: Line 1:
{{Template:1010Topic|Chapter_TOC=[[Control Structures]]|Introduction=To further your knoledge on if-statments we will now add the else part to the if-statements. If-Else Statements add the element that if the conditions are false then "do" somthing else.|Overview=This section covers if-else-statements and how they increace functionallity of the if-statement and how and when to use them.}}
+
{{Template:1010Topic|Chapter_TOC=[[Control Structures]]|Introduction=To further your knowledge on if-statements we will now add the else part to the if-statements. If-Else Statements add the element that if the conditions are false then "do" something else.|Overview=This section covers if-else-statements and how they increase functionality of the if-statement and how and when to use them.}}
  
 
==The If-Else Statement==
 
==The If-Else Statement==

Revision as of 22:23, 21 March 2007

COMP 1010 Home > Control Structures


Introduction

To further your knowledge on if-statements we will now add the else part to the if-statements. If-Else Statements add the element that if the conditions are false then "do" something else.

   

{{{Body}}}

The If-Else Statement

Sometimes it is not sufficient to simply tell the computer "If such-and-such condition is true do this". Somtimes you will want to say "If such-and-such is true do this, otherwise do that". 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 do execute a different body of code 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 == true
}

else
{
    code to execute if condition == 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 us 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");
}
else if (x > 2)
{
  System.out.println("x is greater than 2 but less than 5");
}

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 it 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.

00 public static void main(String[] args)
01 {
02    int scoreA, scoreB;
03    
04    scoreA = Integer.parseInt(JOptionPane.showInputDialog(null,"Enter Team A's score"));
05    scoreB = Integer.parseInt(JOptionPane.showInputDialog(null,"Enter Team B's score"));
06
07    if(scoreA > scoreB)
08    {
09        System.out.println("Team A won");
10    }//if
11
12    else if(scoreA < scoreB)
13    {
14        System.out.println("Team B won");
15    }//else if
16
17    else
18    {
19        System.out.println("The game was a draw");
20    }//else
21 }//main