Selection Statement – Decision Making

There are three types of selection statements in Java. First one is if statement which either performs (selects) an action, if a condition is true, or skips it, if the condition is false. Second is ifelse statement which performs an action if a condition is true and performs a different action if the condition is false. Third one is switch statement which performs one of many different actions, depending on the value of an expression.

1. if statement

The general form of the if statement:

if(condition)
    statement1;

Here, If the condition is true, then statement1 is executed.

statement1 may be a single statement or a compound statement enclosed in curly braces (that is, a block). The condition is any expression that returns a boolean value. 

int testScore = inBox.getInteger(
        "Enter your Test Score.");
if (testScore > 130)
        outBox.printLine("You are good to apply at MIT.");

2. if-else statement

The general form of the if statement:

if(condition)
    statement1;
else
    statement2;

Here,iIf the condition is true, then statement1 is executed. Otherwise, statement2 is executed. In no case will both statements be executed. For example, consider the following:

int testScore = inBox.getInteger(
        "Enter your Test Score.");
if (testScore > 130){
    outBox.print("You are good to apply at MIT.");
} else{
    outBox.print("Try other university.")
}

if-else-if Ladder

if(condition) 
    statement; 
else if(condition) 
    statement; 
else if(condition) 
    statement; 
...
else
    statement

One of statement gets executed when condition is true, else statement in else block will be executed.

3. switch statement

The general form of switch statement is:

switch (expression) { 
    case value1: 
        // statement sequence 
         break; 
    case value2: 
        // statement sequence 
         break;
    ... case valueN: 
        // statement sequence 
         break; 
    default: 
        // default statement sequence 
}

The expression must be of type byte, short, int, or char; each of the values specified in the case statements must be of a type compatible with the expression.

Note: From Java 7, String is also supported in expression.

Example:

// An example to illustrate switch statement
class Switch {
    public static void main(String args[]) {
        int month = 4;
        String season;
        switch (month) {
            case 12:
            case 1:
            case 2:
                season = "Winter";
                break;
            case 3:
            case 4:
            case 5:
                season = "Spring";
                break;

            case 6:
            case 7:
            case 8:
                season = "Summer";
                break;
            case 9:
            case 10:
            case 11:
                season = "Autumn";
                break;
            default:
                season = "Bogus Month";
        }
        System.out.println("April is in the " + season + ".");
    }
}

The ouput of the program is:

April is in the Spring.

Here, expression month in switch statement matches to case with value 4, so season is assigned value Spring.

Note: three important features of the switch statement to be noted:

  1. The switch differs from the if in that switch can only test for equality, whereas if can evaluate any type of Boolean expression. That is, the switch looks only for a match between the value of the expression and one of its case constants.
  2. No two case constants in the same switch can have identical values. Of course, a switch statement and an enclosing outer switch can have case constants in common.
  3. A switch statement is usually more efficient than a set of nested ifs.
Java Operators
Java Iteration Statements