U ovom vodiču naučit ćete koristiti naredbu switch u Javi za kontrolu tijeka izvršavanja vašeg programa uz pomoć primjera.
switch
Izjava nam omogućuje izvršiti blok koda među mnogim alternativama.
Sintaksa switch
izraza na Javi je:
switch (expression) ( case value1: // code to be executed if // expression is equal to value1 break; case value2: // code to be executed if // expression is equal to value2 break;… … default: // default statements )
Kako funkcionira naredba switch?
Izraz se procjenjuje jednom i uspoređuje s vrijednostima svake oznake slučaja .
- Ako postoji podudaranje, izvršava se odgovarajući kod nakon odgovarajuće oznake slučaja .
Na primjer, ako je vrijednost izraza jednaka value2,case value2:
izvršava se kod nakon . - Ako nema podudaranja,
default:
izvršava se kod nakon .
Napomena : Možemo raditi istu funkciju koristeći Javu ako … inače … ako ljestve. Međutim, sintaksa naredbe switch je čišća i puno je lakša za čitanje i pisanje.
Dijagram toka Izjave prekidača

Primjer 1: Izjava o prebacivanju Java
// Java Program to check the size // using the switch… case statement class Main ( public static void main(String() args) ( int number = 44; String size; // switch statement to check size switch (number) ( case 29: size = "Small"; break; case 42: size = "Medium"; break; // match the value of week case 44: size = "Large"; break; case 48: size = "Extra Large"; break; default: size = "Unknown"; break; ) System.out.println("Size: " + size); ) )
Izlaz :
Veličina: Velika
U gornjem primjeru koristili smo naredbu switch za pronalaženje veličine. Ovdje imamo varijabilni broj. Varijabla se uspoređuje s vrijednošću svake izjave slučaja.
Budući da se vrijednost podudara sa slučajem 44 , varijabli veličine dodjeljuje se vrijednost Large
.
naredba break u prekidaču Java … slučaj
Primijetite da smo koristili break
izjavu u svakom bloku slučaja. Ovo je korisno za prekid izjave.
Ako se break
izjava ne koristi, izvršavaju se svi slučajevi nakon odgovarajućeg slučaja. Na primjer,
class Main ( public static void main(String() args) ( int expression = 2; // switch statement to check size switch (expression) ( case 1: System.out.println("Case 1"); // matching case case 2: System.out.println("Case 2"); case 3: System.out.println("Case 3"); default: System.out.println("Default case"); ) ) )
Izlaz
Slučaj 2 Slučaj 3 Zadani slučaj
U gornjem primjeru nismo koristili break
izjavu. Ovdje se izraz podudara sa case 2
.
Možete vidjeti da se zajedno sa case 2
svim sljedećim slučajevima također izvršavaju.
Ovo nije željeni izlaz. Stoga je potrebno koristiti break
naredbu uz svaki blok slučaja .
Primjer 2: Izrada kalkulatora pomoću naredbe switch
Program u nastavku uzima tri unosa od korisnika: jedan operator i 2 broja . Na temelju operatora kojeg je osigurao korisnik, on vrši izračun na brojevima. Tada se rezultat prikazuje na ekranu.
Prije nego što prođete kroz program, provjerite znate li za Java Scanner da biste od korisnika preuzeli unos.
import java.util.Scanner; class Main ( public static void main(String() args) ( char operator; Double number1, number2, result; // create an object of Scanner class Scanner input = new Scanner(System.in); // ask users to enter operator System.out.print("Choose an operator: +, -, *, or /: "); operator = input.next().charAt(0); // ask users to enter numbers System.out.print("Enter first number: "); number1 = input.nextDouble(); System.out.println("Enter second number: "); number2 = input.nextDouble(); switch (operator) ( // performs addition between numbers case '+': result = number1 + number2; System.out.print(number1 + "+" + number2 + " = " + result); break; // performs subtraction between numbers case '-': result = number1 - number2; System.out.print(number1 + "-" + number2 + " = " + result); break; // performs multiplication between numbers case '*': result = number1 * number2; System.out.print(number1 + "*" + number2 + " = " + result); break; // performs division between numbers case '/': result = number1 / number2; System.out.print(number1 + "/" + number2 + " = " + result); break; default: System.out.println("Invalid operator!"); break; ) input.close(); ) )
Izlaz 1
Odaberite operatora: +, -, * ili /: + Unesite prvi broj: 23 Unesite drugi broj: 21 23,0 + 21,0 = 44,0
Izlaz 2
Odaberite operatora: +, -, * ili /: - Unesite prvi broj: 24 Unesite drugi broj: 13 24,0-13,0 = 11,0
Izlaz 3
Odaberite operatora: +, -, * ili /: * Unesite prvi broj: 12 Unesite drugi broj: 6 12,0 * 6,0 = 72,0
Izlaz 4
Odaberite operatora: +, -, * ili /: / Unesite prvi broj: 36 Unesite drugi broj: 6 36,0 / 6,0 = 6,0
Izlaz 5
Odaberite operatora: +, -, * ili /:? Unesite prvi broj: 12 Unesite drugi broj: 23 Nevaljani operator!
U gornjem primjeru koristimo switch… case
izjavu za izvođenje zbrajanja, oduzimanja, množenja i dijeljenja.
Napomena : Izjava o prebacivanju Java radi samo sa:
- Java primitivni tipovi podataka: byte, short, char i int
- Java nabrojani tipovi
- Razred Java Stringa
- Klase Java omotača: Znak, Bajt, Kratki i Integer.