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
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);
>
>