Else If-kæder i Java
Stryg for at vise menuen
Indtil nu fungerer if-else-sætninger godt, når der kun er brug for to udfald. Men i virkelige systemer er beslutninger som regel mere detaljerede end det.
For eksempel kan en kaffebar have forskellige belønningsniveauer afhængigt af, hvor mange varer en kunde bestiller:
- små bestillinger får ingen ekstra;
- mellemstore bestillinger får en lille bonus;
- store bestillinger får en større belønning;
- meget store bestillinger kan udløse et særligt tilbud.
Her bliver else if-kæder nyttige — de gør det muligt at kontrollere flere betingelser efter hinanden. Programmet gennemgår betingelserne fra top til bund, og så snart det finder en betingelse, der er true, udfører det den blok og ignorerer resten.
Struktur
if (condition1) {
// runs if condition1 is true
} else if (condition2) {
// runs if condition2 is true
} else {
// runs if none are true
}
Kun én blok vil nogensinde blive kørt — den første betingelse, der matcher, vinder.
Eksempel
Main.java
123456789101112131415161718package com.example; public class Main { public static void main(String[] args) { int deliveryDistance = 7; if (deliveryDistance > 20) { System.out.println("Delivery fee: 10€"); } else if (deliveryDistance > 10) { System.out.println("Delivery fee: 5€"); } else if (deliveryDistance > 5) { System.out.println("Delivery fee: 2€"); } else { System.out.println("Free delivery"); } } }
Du kontrollerer deliveryDistance mod hver betingelse fra top til bund. Da 7 ikke er større end 20 eller 10, men er større end 5, matcher det tredje blok og udskriver "Delivery fee: 2€". else nederst vil kun blive udført, hvis ingen af betingelserne er opfyldt.
Det er meget vigtigt at forstå, at rækkefølgen har betydning. Da Java stopper ved den første true betingelse, skal du strukturere dine tjek fra det mest specifikke til det mest generelle — ellers kan en bredere betingelse utilsigtet fange værdier, der var tiltænkt en mere specifik regel.
Tænk på else if-kæder som en beslutningsstige — programmet bevæger sig trin for trin nedad, indtil det finder det korrekte match.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Else If-kæder i Java
Indtil nu fungerer if-else-sætninger godt, når der kun er brug for to udfald. Men i virkelige systemer er beslutninger som regel mere detaljerede end det.
For eksempel kan en kaffebar have forskellige belønningsniveauer afhængigt af, hvor mange varer en kunde bestiller:
- små bestillinger får ingen ekstra;
- mellemstore bestillinger får en lille bonus;
- store bestillinger får en større belønning;
- meget store bestillinger kan udløse et særligt tilbud.
Her bliver else if-kæder nyttige — de gør det muligt at kontrollere flere betingelser efter hinanden. Programmet gennemgår betingelserne fra top til bund, og så snart det finder en betingelse, der er true, udfører det den blok og ignorerer resten.
Struktur
if (condition1) {
// runs if condition1 is true
} else if (condition2) {
// runs if condition2 is true
} else {
// runs if none are true
}
Kun én blok vil nogensinde blive kørt — den første betingelse, der matcher, vinder.
Eksempel
Main.java
123456789101112131415161718package com.example; public class Main { public static void main(String[] args) { int deliveryDistance = 7; if (deliveryDistance > 20) { System.out.println("Delivery fee: 10€"); } else if (deliveryDistance > 10) { System.out.println("Delivery fee: 5€"); } else if (deliveryDistance > 5) { System.out.println("Delivery fee: 2€"); } else { System.out.println("Free delivery"); } } }
Du kontrollerer deliveryDistance mod hver betingelse fra top til bund. Da 7 ikke er større end 20 eller 10, men er større end 5, matcher det tredje blok og udskriver "Delivery fee: 2€". else nederst vil kun blive udført, hvis ingen af betingelserne er opfyldt.
Det er meget vigtigt at forstå, at rækkefølgen har betydning. Da Java stopper ved den første true betingelse, skal du strukturere dine tjek fra det mest specifikke til det mest generelle — ellers kan en bredere betingelse utilsigtet fange værdier, der var tiltænkt en mere specifik regel.
Tænk på else if-kæder som en beslutningsstige — programmet bevæger sig trin for trin nedad, indtil det finder det korrekte match.
Tak for dine kommentarer!