1. Multiple-choice operatoren:switch
Java har en anden interessant operatør, som den har arvet fra sin bedstefar (C++). Vi taler om switch
udsagnet. Vi kunne også kalde det en multiple-choice-operatør. Det ser lidt besværligt ud:
switch(expression)
{
case value1: code1;
case value2: code2;
case value3: code3;
}
Et udtryk eller en variabel er angivet inden for parentes. Hvis værdien af udtrykket er value1
, begynder Java-maskinen at udføre code1
. Hvis udtrykket er lig med value2
, springer eksekveringen til code2
. Hvis udtrykket er lig med value3
, code3
udføres det.
Eksempel:
Kode | Konsoludgang |
---|---|
|
|
2. break
erklæring iswitch
Et vigtigt træk ved en switch
sætning er, at programmet simpelthen hopper til den påkrævede linje (til den nødvendige kodeblok) og derefter udfører alle kodeblokkene indtil slutningen af switch
. Ikke kun den kodeblok, der svarer til værdien i switch
, men alle kodeblokkene indtil slutningen af switch
.
Eksempel:
Kode | Konsoludgang |
---|---|
|
|
Givet en temperatur på 36, vil programmet indtaste switch
sætningen, springe til og udføre den første kodeblok (det første tilfælde), og derefter muntert udføre resten af kodeblokkene.
Hvis du kun vil udføre én kodeblok - kodeblokken, der er knyttet til det matchede tilfælde - så skal du afslutte blokken med en break
sætning;
Eksempel:
Kode | Konsoludgang |
---|---|
|
|
Du kan udelade break
i det sidste tilfælde af sætningen switch
, da den blok er den sidste med eller uden en break-sætning.
3. Standardhandling:default
Endnu en vigtig pointe. Hvad sker der, hvis ingen af de tilfælde, der er anført i feltet, switch
matcher udtrykket i parentes?
Hvis der ikke findes et matchende tilfælde, springes resten af switch
sætningen over, og programmet fortsætter eksekveringen efter den krøllede klammer, der afslutter sætningen switch
.
Når det er sagt, kan du også lave en switch
erklæring, der opfører sig som den anden gren i en if-else
erklæring. For at gøre dette skal du bruge default
søgeordet.
Hvis ingen af case
s'erne i switch
blokken matcher værdien af udtrykket og switch
har en default
blok, vil standardblokken blive udført. Eksempel:
Kode | Konsoludgang |
---|---|
|
|
4. Sammenligning switch
ogif-else
switch
Udsagnet minder lidt om et udsagn if-else
, kun mere kompliceret.
Du kan altid omskrive koden for et switch
udsagn som flere if
udsagn. Eksempel:
Kode med kontakt | Kode med if-else |
---|---|
|
|
Koden til venstre vil fungere nøjagtigt det samme som koden til højre.
En kæde af flere if-else
udsagn er at foretrække, når et if
udsagn indeholder forskellige komplekse udtryk i hvert enkelt tilfælde.
5. Hvilke udtryk kan bruges i et switch
udsagn?
Ikke alle typer kan bruges som case
etiketter i en switch
erklæring. Du kan bruge bogstaver af følgende typer:
- heltalstyper:
byte
,short
,int
,long
char
String
- enhver
enum
type
Du kan ikke bruge andre typer som sagsetiketter.
Eksempel på brug af et enum
inde i et switch
udsagn:
Day day = Day.MONDAY;
switch (day)
{
case MONDAY:
System.out.println("Monday");
break;
case TUESDAY:
System.out.println("Tuesday");
break;
case WEDNESDAY:
System.out.println("Wednesday");
break;
case THURSDAY:
System.out.println("Thursday");
break;
case FRIDAY:
System.out.println("Friday");
break;
case SATURDAY:
System.out.println("Saturday");
break;
case SUNDAY:
System.out.println("Sunday");
break;
}
Bemærk: Hvis du bruger en enum
inde i en switch
sætning, behøver du ikke skrive klassenavnet foran hver værdi i etiketterne case
. Det er nok bare at skrive værdien.
GO TO FULL VERSION