Java 5

5.3. A kapcsoló nyilatkozat

A kapcsoló utasítás egyértelmű módja annak, hogy a kód különböző részei között váltson, változó vagy kifejezés értékétől függően. Az üzemeltető általános formája a következő:

A kifejezés kiértékelésének eredménye lehet bármilyen egyszerű típus értéke, az esetkibocsátásokban megadott értékek mindegyikével. típusnak kompatibilisnek kell lennie a kapcsoló utasításban szereplő kifejezéssel. Mindezeknek az értékeknek egyedi literáloknak kell lenniük. Ha ugyanazokat az értékeket adja meg két esetben, a fordító hibaüzenet jelenik meg.

A kapcsoló utasítás a következőképpen működik. A kifejezés számított értékét összehasonlítjuk az esettanulmányokban megadott összes értékkel. Ha az esettanulmány olyan értékkel van megegyezve, amely megfelel a kifejezés értékének, az ellenőrzés a mögött lévő kódra kerül (a kettőspont után). Ha a kifejezés értéke nem felel meg az esettanulmányok bármelyikének. az ellenőrzés átkerül a kulcsszó alapértéke után található kódra. Vegye figyelembe, hogy az alapértelmezett utasítás opcionális. Abban az esetben, ha az esettanulmányok egyike sem felel meg a kifejezés értékének, és a kapcsolóban nincs alapértelmezett operátor. A program végrehajtása a kapcsoló utasítás után folytatódik a kezelővel.

A kapcsoló utasításon belül (valamint a hurok konstrukciók belsejében) a címke nélküli szünet vezet a vezérlő átkapcsolásához a kódra a kapcsolási utasítás után. Ha nincs szünet, akkor az aktuális eset után a következő eset kerül végrehajtásra. Néha célszerű, ha a kapcsoló utasításban több szomszédos esetszakaszt tartalmaznak, amelyek nincsenek szétválaszthatók.

Az alábbiakban még egy hasznos példa, ahol a kapcsoló kezelője a vezérlő átvitelére szolgál a különböző karakterkódok szerint a bemeneti vonalon. A program számolja a sorok, szavak és szimbólumok számát a szöveges karakterláncban,

osztályú WordCount
statikus String text = "Jelenleg tanulunk \ n" +
"alapismeretek programozása \ n" +
"in Java \ n";
statikus int len ​​= text.length ();
nyilvános statikus érvénytelen fő (String args [])
logikai inWord = false;
int numChars = 0;
int numWords = 0;
int numLines = 0;
az (int i = 0; i char c = text.charAt (i);
numChars ++;
kapcsoló (c)
eset '\ n': numLines ++; // Növelje a számláló karakterláncot
'\ t' eset: // Adjuk meg a karakterek számát
eset ". ha (inWord)
numwords ++;
inWord = false;
>
break;
alapértelmezett: inWord = true;
>
>
System.out.println ("\ t" + numLines + "\ t" + numWords + "\ t" + numChars);
>
>

Kapcsolódó cikkek