Java 5

5.3. Instrucțiunea de comutare

Instrucțiunea switch oferă o modalitate clară de a comuta între diferite părți ale codului, în funcție de valoarea unei variabile sau a unei expresii. Forma generală a acestui operator este următoarea:







Rezultatul evaluării unei expresii poate fi o valoare de orice tip simplu, cu fiecare dintre valorile specificate în instrucțiunile de caz. trebuie să fie compatibil cu tipul cu expresia din comanda switch. Toate aceste valori trebuie să fie literale unice. Dacă specificați aceleași valori în două instrucțiuni de caz, compilatorul va afișa un mesaj de eroare.

Instrucțiunea de comutare funcționează după cum urmează. Valoarea calculată a expresiei este comparată cu toate valorile specificate în instrucțiunile de caz. Dacă instrucțiunea de caz este găsită cu o valoare care corespunde valorii expresiei, controlul este transmis codului din spatele ei (după colon). Dacă valoarea expresiei nu corespunde niciunei dintre instrucțiunile de caz. controlul este trecut la codul localizat după implicit cuvântul cheie. Rețineți că instrucțiunea implicită este opțională. În cazul în care niciuna dintre instrucțiunile de caz nu corespunde valorii expresiei și nu există operator implicit în comutator. Execuția programului continuă cu operatorul urmând instrucțiunea switch.







În interiorul instrucțiunii comutatorului (precum și în interiorul constructelor buclă), spargerea fără etichetă duce la transferul controlului la cod după instrucțiunea switch. Dacă pauza nu este prezentă, următorul caz va fi executat după secțiunea de caz curentă. Uneori este convenabil să aveți în declarația comutator mai multe secțiuni ale secțiunilor adiacente care nu sunt separate de instrucțiunea de pauză.

Mai jos este un exemplu și mai util, în care operatorul de comutare este utilizat pentru a transfera controlul în funcție de diferite coduri de caractere din linia de intrare. Programul numără numărul de linii, cuvinte și simboluri din șirul de text,

clasa WordCount
static String text = "Învățăm în prezent \ n" +
"de bază de programare \ n" +
"în Java \ n";
statică int len ​​= text.length ();
public static void principal (String args [])
boolean inWord = false;
int numChars = 0;
int numWords = 0;
int numLines = 0;
pentru (int i = 0; i char c = text.charAt (i);
numChars ++;
comutatorul (c)
caz '\ n': numLines ++; // Măriți contravântuirea
caz '\ t': // Numără numărul de caractere
caz ". dacă (inWord)
numWords ++;
inWord = false;
>
pauză;
implicit: inWord = true;
>
>
System.out.println ("\ t" + numLines + "\ t" + numWords + "\ t" + numChars);
>
>







Articole similare

Trimiteți-le prietenilor: