Java - Switch izjave


U Javi smo koristili if..else..if izjavu za izvršavanje bloka koda među više blokova. Međutim, sintaksa if...else...if je preduga. Dakle, switch izjavu možemo koristiti kao zamjenu za if...else...if izjavu. Upotreba switch izjave čini naš kod čitljivijim. Sintaksa switch izjave je:

switch (variable/expression) {
case value1:
   // izjava od case1
   break;

case value2:
   // izjava od case2
   break;

   .. .. ...
   .. .. ...

default:
   // difoltna izjava
}

Switch izjava procjenjuje izraz (uglavnom varijabilnog) i upoređuje ga s vrijednostima (mogu biti izrazi) svake oznake slučaja. Ako se vrijednost podudara s određenom oznakom slučaja, tada se izvršavaju sve izjave odgovarajuće oznake slučaja. Na primjer, ako je varijabla/izraz jednaka value2 izjava se izvršava.

Primjetite, upotrebu izjava o prekidu u svakom slučaju. Izjava o prekidu koristi se za prekid (break) izvršenja izjave. Važno je, jer ako se ne koristi prekid (break), sve izjave nakon podudaranja se izvršavaju u sljedu do kraja switch izjave.



Dijagram toka switch izjave




Primjer 1: Switch izjava u Javi

class Main {
    public static void main(String[] args) {

        int week = 4;
        String day;

        // switch izjava za provjeru dana
        switch (week) {
            case 1:
                day = "Nedelja";
                break;
            case 2:
                day = "Ponedeljak";
                break;
            case 3:
                day = "Utorak";
                break;

            // odgovaraju vrijednosti sedmice
            case 4:
                day = "Srijeda";
                break;
            case 5:
                day = "Četvrtak";
                break;
            case 6:
                day = "Petak";
                break;
            case 7:
                day = "Subota";
                break;
            default:
                day = "Nepoznat dan";
                break;
        }
        System.out.println("Danas je  " + day);
    }
}

Primjer 2: Izrada digitrona pomoću switch izjave

Program u nastavku uzima tri ulaza od korisnika: jedan operator i 2 broja. Na osnovu operatera koji je dao korisnik izvodi proračun na brojevima. Tada se rezultat prikazuje na ekranu.

import java.util.Scanner;

class Main {
    public static void main(String[] args) {

        char operator;
        Double number1, number2, result;

        // kreirajte objet za Scanner class
        Scanner scanner = new Scanner(System.in);
        System.out.print("Unesite operator (either +, -, * or /): ");

        // pitajte korisnika da unese operatera
        operator = scanner.next().charAt(0);
        System.out.print("Enter number1 and number2 respectively: ");

        // pitaj korisnika da unese broj
        number1 = scanner.nextDouble();
        number2 = scanner.nextDouble();

        switch (operator) {

            // izvodi sabiranje između brojeva
            case '+':
                result = number1 + number2;
                System.out.print(number1 + "+" + number2 + " = " + result);
                break;

            // izvodi oduzimanje između brojeva
            case '-':
                result = number1 - number2;
                System.out.print(number1 + "-" + number2 + " = " + result);
                break;

            // izvodi množenje između brojeva
            case '*':
                result = number1 * number2;
                System.out.print(number1 + "*" + number2 + " = " + result);
                break;

            // izvodi djeljenje između brojeva
            case '/':
                result = number1 / number2;
                System.out.print(number1 + "/" + number2 + " = " + result);
                break;

            default:
                System.out.println("Pogrešan operator!");
                break;
        }
    }
}

U primjeru, smo koristili switch izjavu za izradu digitrona. Proračun obavlja na osnovu operatera koji je unio korisnik.