În acest tutorial, veți învăța să utilizați instrucțiunea switch în Java pentru a controla fluxul de execuție al programului dvs. cu ajutorul exemplelor.
switch
Declarația ne permite să execute un bloc de cod printre multe alternative.
Sintaxa switch
declarației din Java este:
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 )
Cum funcționează declarația switch?
Expresia este evaluată o dată și comparată cu valorile fiecărei etichete de caz .
- Dacă există o potrivire, se execută codul corespunzător după eticheta de caz potrivită .
De exemplu, dacă valoarea expresiei este egală cu valoarea 2, codul dupăcase value2:
este executat. - Dacă nu există nicio potrivire, codul de după
default:
este executat.
Notă : Putem face aceeași funcționalitate folosind Java dacă … altfel … dacă scară. Cu toate acestea, sintaxa declarației switch este mai curată și mult mai ușor de citit și de scris.
Organigrama declarației de comutare

Exemplul 1: instrucțiune de comutare 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); ) )
Ieșire :
Dimensiune: mare
În exemplul de mai sus, am folosit instrucțiunea switch pentru a găsi dimensiunea. Aici avem un număr variabil. Variabila este comparată cu valoarea fiecărei instrucțiuni de caz.
Deoarece valoarea se potrivește cu cazul 44 , variabila de dimensiune este atribuită cu valoare Large
.
instrucțiune break în comutatorul Java … caz
Observați că am folosit break
declarația în fiecare bloc de caz. Acest lucru este util pentru a rezilia declarația.
Dacă break
instrucțiunea nu este utilizată, toate cazurile după cazul de potrivire sunt executate. De exemplu,
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"); ) ) )
Ieșire
Cazul 2 Cazul 3 Caz implicit
În exemplul de mai sus, nu am folosit break
declarația. Aici, expresia se potrivește cu case 2
.
Puteți vedea că împreună cu case 2
toate cazurile următoare sunt, de asemenea, executate.
Aceasta nu este ieșirea dorită. Prin urmare, este necesar să utilizați break
instrucțiunea cu fiecare bloc de caz .
Exemplul 2: Realizarea calculatorului folosind instrucțiunea switch
Programul de mai jos ia trei intrări de la utilizator: un operator și 2 numere . Pe baza operatorului furnizat de utilizator, acesta efectuează calculul asupra numerelor. Apoi, rezultatul este afișat pe ecran.
Înainte de a parcurge programul, asigurați-vă că știți despre Java Scanner pentru a primi informații de la utilizator.
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(); ) )
Ieșire 1
Alegeți un operator: +, -, * sau /: + Introduceți primul număr: 23 Introduceți al doilea număr: 21 23,0 + 21,0 = 44,0
Ieșire 2
Alegeți un operator: +, -, * sau /: - Introduceți primul număr: 24 Introduceți al doilea număr: 13 24.0-13.0 = 11.0
Ieșire 3
Alegeți un operator: +, -, *, sau /: * Introduceți primul număr: 12 Introduceți al doilea număr: 6 12,0 * 6,0 = 72,0
Ieșire 4
Alegeți un operator: +, -, * sau /: / Introduceți primul număr: 36 Introduceți al doilea număr: 6 36,0 / 6,0 = 6,0
Ieșire 5
Alegeți un operator: +, -, *, sau /:? Introduceți primul număr: 12 Introduceți al doilea număr: 23 Operator nevalid!
În exemplul de mai sus, folosim switch… case
declarația pentru a efectua adunarea, scăderea, înmulțirea și împărțirea.
Notă : Instrucțiunea Java switch funcționează numai cu:
- Tipuri de date Java Primitive: octet, scurt, caracter și int
- Tipuri Java enumerate
- Java String Class
- Clasele Java Wrapper: caracter, octet, scurt și întreg.