- Back to Home »
- Java switch Statements
A switch statement works a bit like an
if statement, except it can choose between more than two blocks of code to execute. Here is a simple example:int amount = 9;
switch(amount) {
case 0 : System.out.println("amount is 0"); break;
case 5 : System.out.println("amount is 5"); break;
case 10 : System.out.println("amount is 10"); break;
default : System.out.println("amount is something else");
}
This example first creates a variable named
amount and assigns the value 9 to it.
Second, the example "switches" on the value of the
amount variable. Inside the switch statement are 3 case statements and a default statement.
Each
case statement compares the value of the amount variable with a constant value. If theamount variable value is equal to that constant value, the code after the colon (:) is executed. Notice the break keyword after each statement. If no break keyword was place here, the execution could continue down the rest of the case statements until a break is met, or the end of the switchstatement is reached. The break keyword makes execution jump out of the switch statement.
The
default statement is executed if no case statement matched the value of the amountvariable. The default statement could also be executed if the case statements before it did not have a break command in the end. You don't need a default statement. It is optional.Switch on byte, short, char, int, String, or enum's
As you have seen, the switch statement switches on a variable. Before Java 7 this variable has to be numeric and must be either a
byte, short, char or int. From Java 7 the variable can also be aString It is also possible use a Java enum as switch variable.Multiple case statements for same operation
In case you want the same operation executed for multiple
case statements, you write it like this:char key = '\t'
switch(amount) {
case ' ' :
case '\t' : System.out.println("white space char"); break;
default : System.out.println("amount is something else");
}
Notice how the first
case statement does not have any operation after the colon. The result of this is, that execution just "drops" down to the operation of the next case statement ( and the next etc.) until a break is met. The next break statement is after the second case statement. That means, that for both the first and second case statement, the same operation is executed - that of the second case statement.