Java Switch Case

The switch statement is a multiway branch statement. It provides an easy way to dispatch execution to different parts of code based on the value of the expression.

EXAMPLE1:

class Geeks {
    public static void main(String[] args)
    {
        int num = 20;
        switch (num) {
        case 5:
            System.out.println("It is 5");
            break;
        case 10:
            System.out.println("It is 10");
            break;
        case 15:
            System.out.println("It is 15");
            break;
        case 20:
            System.out.println("It is 20");
            break;
        default:
            System.out.println("Not present");
        }
    }
}

Output:
It is 20

EXAMPLE2:

public class SwitchExample {
    public static void main(String[] args) {
        int day = 3;  // You can change this value to test other cases

        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");
        }
    }
}

Output:
Wednesday

Task:

  1. Remove break from case 1to7 ?
int day = 3;

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

OUTPUT:
Wednesday
Thursday
Friday
Saturday
Sunday
Invalid day

Meaning:
switch statement will "fall through"

  1. Move default just above any case block? In Java, the order of case and default inside a switch block doesn't matter logically.

3.Remove break statement from default?

public class Switchcase {
    public static void main(String[] args) {
        int day = 9;  // An invalid day to trigger default

        switch (day) {
            default:
                System.out.println("Invalid day");
                // No break, so fall-through occurs

            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;
        }
    }
}

OUTPUT
Invalid day
Monday

Meaning:
Because there's no break after default, it falls through to case 1.

4.Instead of using int day, try using float values?

public class Switchcase {
    public static void main(String[] args) {
        float day = 2.0f;

        switch (day) { // ❌ Error: switch expression must be convertible to int
            case 1.0f:
                System.out.println("One");
                break;

            default:
                System.out.println("Default");
        }
    }
}

In Java, the switch statement does not support float (or double) types

✅ Supported types:

  1. byte
  2. short
  3. char
  4. int
  5. enum
  6. String
  7. Integer, Character, Byte, Short (boxed versions)

❌ Not supported:
1.float
2.double

  1. long
  2. boolean
  3. Any custom object type unless it's an enum or String