HelloUniversity Icon HelloUniversity

Switch in Java

Published on: September 29, 2025 by Henson M. Sagorsor



Introduction to Office Suites

Making Smarter Choices with Switch in Java

“Programs must be written for people to read, and only incidentally for machines to execute.” This timeless quote from Harold Abelson reminds us that clarity matters. And nowhere is this more obvious than in decision-making structures in programming.

In Java, decision making often starts with if and if-else. But what if you need to compare a single value against many different options? A long ladder of if-else statements quickly becomes messy. That’s when the switch statement in Java becomes your best tool.

A Java switch case gives you a clean way to pick exactly one path from multiple choices. Think of it like scanning a restaurant menu — you choose an item number, and you get exactly what you ordered. No endless questioning, no confusion.

In this lesson, we’ll unpack how the switch statement in Java works, why it simplifies decision making in Java, and how you can use it to write cleaner and more efficient programs. We’ll move from simple syntax to real examples, and even tackle common pitfalls like fall-through.

By the end, you’ll know when to choose switch over if-else — and how to use it to make your code both readable and professional.



Definition, Analogy, and Syntax

A switch statement in Java is a control structure that allows you to execute exactly one block of code out of several options. It evaluates an expression once, compares the result to different case labels, and runs the matching block. If no case matches, the default block executes.

  • The expression is evaluated only once.
  • Each case compares the value of that expression against a constant.
  • If a case matches, its block runs until a break statement is reached.
  • The default block handles any unmatched values.

Analogy

Think of a Java switch case like ordering from a restaurant menu. You tell the waiter your choice number. If you say “2,” the waiter checks the menu:

  • Case 1 → Burger
  • Case 2 → Pasta
  • Case 3 → Pizza

If you choose option 2, you get Pasta. If your choice isn’t listed, the waiter says: “Sorry, not available.” That’s the default case in action. This approach is much cleaner than the waiter asking, “Is it burger? No. Is it pasta? Yes.”

Syntax

switch (expression) {
    case value1:
        // statements
        break;
    case value2:
        // statements
        break;
    ...
    default:
        // statements if no case matches
}

The expression must be a single value, such as an int, char, String, or enum. It cannot be a range, condition, or floating-point number. Each case must match a fixed constant.


Important Notes on Switch

One Expression, Multiple Discrete Values

A switch statement in Java always works with a single expression. This expression is checked against multiple discrete values — specific, fixed values that the expression can take.

✔ Allowed:

  • Numbers like 1, 2, 3
  • Characters like 'A', 'B'
  • Strings like "Red", "Green"
  • Enums

✘ Not Allowed:

  • Ranges like x > 5
  • Complex conditions like (x + y > 10)
  • Comparisons like age >= 18

Think of it like a vending machine. You press button 1 for Cola, 2 for Water, 3 for Juice. Each button is a case. But if you tell the machine “anything between 1 and 5,” it won’t work. That’s what if-else is for.

Break vs Fall-Through

By default, once a case matches, execution continues into the next cases. This behavior is called fall-through. To prevent this, you use the break keyword.

With break (recommended):

int num = 2;

switch(num) {
    case 1:
        System.out.println("One");
        break;
    case 2:
        System.out.println("Two");
        break;
    case 3:
        System.out.println("Three");
        break;
    default:
        System.out.println("Other number");
}

Output:

Two

Without break (fall-through):

int num = 2;

switch(num) {
    case 1:
        System.out.println("One");
    case 2:
        System.out.println("Two");
    case 3:
        System.out.println("Three");
    default:
        System.out.println("Other number");
}

Output:

Two
Three
Other number

Always use break unless you intentionally want multiple cases to run. This small detail prevents unexpected results and makes your Java switch case more reliable.


Examples of Switch in Action

Example 1: Days of the Week

In this program, the user provides a number between 1 and 7. Each number corresponds to a day of the week. If the input doesn’t match, the default case runs.

public class SwitchExample {
    public static void main(String[] args) {
        int day = 3;

        switch(day) {
            case 1:
                System.out.println("Monday");
                break;
            case 2:
                System.out.println("Tuesday");
                break;
            case 3:
                System.out.println("Wednesday");
                break;
            case 4:
                System.out.println("Thursday");
                break;
            case 5:
                System.out.println("Friday");
                break;
            case 6:
                System.out.println("Saturday");
                break;
            case 7:
                System.out.println("Sunday");
                break;
            default:
                System.out.println("Invalid day number");
        }
    }
}

Output:

Wednesday

Flowchart (Text Version)

 ┌────────┐
 │ START  │
 └───┬────┘
     ↓
 [ Input day ]
     ↓
 < SWITCH(day) >
     ↓
 ├─ Case 1 → "Monday" → break
 ├─ Case 2 → "Tuesday" → break
 ├─ Case 3 → "Wednesday" → break
 ├─ Case 4 → "Thursday" → break
 ├─ Case 5 → "Friday" → break
 ├─ Case 6 → "Saturday" → break
 ├─ Case 7 → "Sunday" → break
 └─ Default → "Invalid day number"
     ↓
 ┌────────┐
 │  END   │
 └────────┘

Example 2: Simple Calculator

Here, the user enters two numbers and chooses an operation. The Java switch case decides which arithmetic operation to perform.

import java.util.Scanner;

public class Calculator {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter first number: ");
        int a = sc.nextInt();
        System.out.println("Enter second number: ");
        int b = sc.nextInt();
        System.out.println("Choose operation: 1=Add, 2=Subtract, 3=Multiply, 4=Divide");
        int choice = sc.nextInt();

        switch(choice) {
            case 1:
                System.out.println("Result: " + (a + b));
                break;
            case 2:
                System.out.println("Result: " + (a - b));
                break;
            case 3:
                System.out.println("Result: " + (a * b));
                break;
            case 4:
                System.out.println("Result: " + (a / b));
                break;
            default:
                System.out.println("Invalid choice");
        }
    }
}

Flowchart (Text Version)

 ┌────────┐
 │ START  │
 └───┬────┘
     ↓
 [ Input a, b ]
     ↓
 [ Input choice ]
     ↓
 < SWITCH(choice) >
     ↓
 ├─ Case 1 → Print a+b → break
 ├─ Case 2 → Print a-b → break
 ├─ Case 3 → Print a*b → break
 ├─ Case 4 → Print a/b → break
 └─ Default → "Invalid choice"
     ↓
 ┌────────┐
 │  END   │
 └────────┘

Key Points to Remember

  • The switch statement in Java works with int, char, String, and enum types.
  • Always use break to prevent fall-through, unless you want multiple cases to execute.
  • The default block runs when no case matches, but it’s optional.
  • Use switch over if-else when handling multiple fixed values for one variable.

Student Activities

Activity 1 – Grade Remarks

Write a program that accepts a grade letter (A, B, C, D, F) and prints:

  • A → Excellent
  • B → Good
  • C → Average
  • D → Needs Improvement
  • F → Fail

Activity 2 – Traffic Light

Using a Java switch case, display actions based on light color:

  • Green → Go
  • Yellow → Prepare to Stop
  • Red → Stop
  • Any other input → Invalid Color

Challenge Project – ATM Menu Simulation

To put your knowledge of the switch statement in Java into practice, let’s build a simple ATM simulation. This project combines decision making, user input, and validation.

Requirements

  • Start with a balance of 1000.
  • Display a menu with these options:
    • 1 → Check Balance
    • 2 → Deposit
    • 3 → Withdraw
    • 4 → Exit
  • Use a switch to handle each choice.
  • If the user chooses Withdraw, check if the balance is enough before deducting.
  • If the choice doesn’t match any case, print “Invalid choice.”

Sample Code

import java.util.Scanner;

public class ATM {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int balance = 1000;
        int choice;

        System.out.println("=== ATM Menu ===");
        System.out.println("1. Check Balance");
        System.out.println("2. Deposit");
        System.out.println("3. Withdraw");
        System.out.println("4. Exit");
        System.out.print("Enter choice: ");
        choice = sc.nextInt();

        switch(choice) {
            case 1:
                System.out.println("Balance: " + balance);
                break;
            case 2:
                System.out.print("Enter amount to deposit: ");
                int deposit = sc.nextInt();
                balance += deposit;
                System.out.println("New Balance: " + balance);
                break;
            case 3:
                System.out.print("Enter amount to withdraw: ");
                int withdraw = sc.nextInt();
                if (withdraw <= balance) {
                    balance -= withdraw;
                    System.out.println("New Balance: " + balance);
                } else {
                    System.out.println("Insufficient funds!");
                }
                break;
            case 4:
                System.out.println("Thank you for using the ATM!");
                break;
            default:
                System.out.println("Invalid choice");
        }
    }
}

This project reinforces how Java switch case statements make it easier to handle multiple user options. Each menu choice is a case, and the default case prevents unexpected input errors.


description Download the Lesson 10 Notes (PDF)

You can view or download the complete PDF of the Switch Statement notes here:

download View / Download PDF Notes

quiz Mandatory Assessment

All students must complete the assessment for this lesson. Your submission is required for course completion.

assignment_turned_in Take Assessment

warning Don’t miss this! The assessment link is required for all students.


Expand Your Knowledge

Dive deeper into technology and productivity with these related articles:






We'd Like to Hear Your Feedback

Comments

No comments yet. Be the first to share your thoughts!