Java Academy · leksjon

Nøstede ternære operatorer

Kjed beslutninger med omtanke.

Leksjon 2 av 413 trinn

Nøstede ternære operatorer er en gratis leksjon i Java Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Java Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Java Academy inneholder totalt 4 leksjoner.

Hva er en nøstet ternær operator?

En nøstet ternær operator plasserer en annen ternær operator i én av grenene sine.

Dette lar deg velge mellom tre eller flere utfall i stedet for bare to.

Resultatet er en kjede av betingelser som evalueres fra venstre mot høyre.

int score = 75;
String grade = score >= 90 ? "A" : score >= 80 ? "B" : "C";

Slik grupperes den

Den ternære operatoren er høyreassosiativ. Det betyr at den usanne grenen tar opp resten av kjeden.

Dermed tolkes a ? x : b ? y : z som a ? x : (b ? y : z).

Hvert : sender videre til neste betingelse.

// reads as: a ? x : (b ? y : z)
String r = false ? "x" : true ? "y" : "z"; // r = "y"

Et valg mellom tre

Her klassifiseres et tall som negativt, null eller positivt.

Den første betingelsen sjekker om tallet er negativt. Den usanne grenen sjekker deretter om tallet er null eller positivt.

public class Main {
    public static void main(String[] args) {
        int n = 0;
        String sign = n < 0 ? "negative" : n == 0 ? "zero" : "positive";
        System.out.println(sign);
    }
}

Et eksempel med karakterer

En klassisk bruk er å knytte en poengsum til en bokstavkarakter.

Hver betingelse sjekkes i rekkefølge til én er sann, og den tilhørende bokstaven returneres.

public class Main {
    public static void main(String[] args) {
        int score = 83;
        String grade = score >= 90 ? "A"
            : score >= 80 ? "B"
            : score >= 70 ? "C" : "F";
        System.out.println(grade);
    }
}

Rekkefølgen er viktig

Betingelsene testes ovenfra og ned, så plasser den mest spesifikke eller høyeste grensen først.

Hvis du sjekket score >= 70 før score >= 90, ville en poengsum på 95 stoppet feilaktig ved det første treffet.

// wrong order: 95 would match >= 70 first
int score = 95;
String g = score >= 70 ? "C" : score >= 90 ? "A" : "F"; // g = "C"!

Legge til parenteser for tydelighet

Java krever ikke parenteser, men de gjør nøstingen tydelig for leseren.

Når du setter hver indre ternære operator i parentes, vises det nøyaktig hvordan grenene hører sammen.

int n = 5;
String s = n < 0 ? "neg" : (n == 0 ? "zero" : "pos");

Formatere over flere linjer

Lange kjeder blir lettere å lese når hver betingelse står på sin egen linje.

Still opp ? og : slik at strukturen ser ut som en trapp.

public class Main {
    public static void main(String[] args) {
        int temp = 22;
        String label = temp >= 30 ? "hot"
            : temp >= 20 ? "warm"
            : temp >= 10 ? "cool"
            : "cold";
        System.out.println(label);
    }
}

Nøsting i den sanne grenen

Du kan også nøste i den sanne grenen, selv om det er mindre vanlig og vanskeligere å lese.

Når du gjør dette, anbefales det på det sterkeste å bruke parenteser for å unngå forvirring.

boolean a = true, b = false;
String r = a ? (b ? "both" : "only a") : "neither";

Returnere en nøstet ternær operator

En metode kan returnere et resultat med flere mulige utfall ved hjelp av én nøstet ternær operator.

Dette er fortsatt lesbart for tre eller fire tilfeller, men blir fort uoversiktlig med flere.

public class Main {
    static String size(int len) {
        return len < 5 ? "short" : len < 10 ? "medium" : "long";
    }
    public static void main(String[] args) {
        System.out.println(size(7));
    }
}

Vit når du bør stoppe

To nivåer med nøsting går som regel fint. Tre eller flere blir ofte vanskelig å følge.

Når en kjede blir lang, er en if/else if-stige eller en switch tydeligere og enklere å feilsøke.

Følge en kjede

Følg denne kjeden trinn for trinn: Med day = 6 er den første betingelsen usann, og den andre er sann.

Resultatet blir derfor "Saturday" uten at resten sjekkes.

public class Main {
    public static void main(String[] args) {
        int day = 6;
        String name = day == 7 ? "Sunday"
            : day == 6 ? "Saturday" : "Weekday";
        System.out.println(name);
    }
}

Kort kontroll

Test hvordan nøstede ternære operatorer grupperes.

Oppsummering

Nøstede ternære operatorer kjeder sammen betingelser for å velge mellom tre eller flere verdier.

De er høyreassosiative, så den usanne grenen tar opp resten. Plasser betingelsene i riktig rekkefølge.

Legg til parenteser og linjeskift for tydelighet, og gå over til if/else når kjedene blir lange.

Gratis å komme i gang

Lær deg Java med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
104
Leksjoner
374

Ofte stilte spørsmål

Er leksjonen «Nøstede ternære operatorer» gratis?

Ja – hele teksten i «Nøstede ternære operatorer» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Java Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Java Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Nøstede ternære operatorer»?

Kjed beslutninger med omtanke. Du øver på Java Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Java Academy?

Ingen tidligere erfaring er nødvendig. Java Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Nøstede ternære operatorer»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Java Academy-leksjonen?

Ja. Alle Java Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Den ternære operatoren
  2. Nøstede ternære operatorer
  3. Ternær operator kontra if/else
  4. Fallgruver for lesbarhet
← Tilbake til Java Academy