Treci la conținutul principal

Instrucțiunea switch

Când o valoare poate duce la unul dintre mai multe blocuri de cod diferite, instrucțiunea switch îți permite să-l alegi pe cel potrivit.

Dacă ai folosit switch în alte limbaje, versiunea din Go ți se va părea cunoscută, cu o singură diferență: se execută doar cazul care se potrivește. Execuția nu continuă în cazul următor, așa că nu scrii un break la sfârșitul fiecărui caz.


Sintaxa switch cu un singur caz

Go evaluează expresia switch o singură dată, apoi compară rezultatul cu fiecare valoare case. Se execută blocul aflat sub case-ul care se potrivește. Poți adăuga și default, care este opțional, pentru a furniza cod pentru situația în care niciun case nu se potrivește.

Sintaxa Switch

main.go
switch expression {
case x:
  // code block
case y:
  // code block
case z:
...
default:
  // code block
}

Exemplu de switch cu un singur caz

Aici, un număr reprezintă o zi a săptămânii, iar switch îl transformă în numele acelei zile. Cu day setat la 4, rezultatul este Thursday.

Exemplu

Prompt
Folosește o instrucțiune switch cu variabila day setată la 4. Afișează numele zilei săptămânii pentru fiecare caz 1-7 (de luni până duminică).
Ieșire: Program Go și ieșirea capturată

Cuvântul cheie default

Când niciunul dintre cazuri nu se potrivește, intră în acțiune codul de sub default. În acest exemplu, niciun caz nu acoperă valoarea 8, așa că se afișează mesajul din default.

Exemplu

Prompt
Folosește un switch cu day setat la 8 și cazurile 1-7 pentru numele zilelor săptămânii. Adaugă un caz default care afișează "Nu este o zi a săptămânii".
Ieșire: Program Go și ieșirea capturată

Tipul cazurilor trebuie să se potrivească

Fiecare valoare case trebuie să aibă același tip ca expresia switch. Dacă amesteci un alt tip, programul nu se va compila. În acest exemplu, a este un int, așa că acel caz cu șirul de caractere "b" provoacă o eroare.

Exemplu

Prompt
Arată un switch pe o variabilă int în care un caz folosește o valoare string, provocând o eroare de compilare.
Ieșire: Program Go și ieșirea capturată