Else If-kedjor i Java
Svep för att visa menyn
Hittills fungerar if-else-satser utmärkt när endast två utfall behövs. Men i verkliga system är besluten oftast mer detaljerade än så.
Till exempel kan ett kafé ha olika belöningsnivåer beroende på hur många varor någon beställer:
- små beställningar får inget extra;
- medelstora beställningar får en liten bonus;
- stora beställningar får en större belöning;
- mycket stora beställningar kan låsa upp ett specialerbjudande.
Det är här else if-kedjor blir användbara — de gör det möjligt att kontrollera flera villkor efter varandra. Programmet går uppifrån och ner, och så snart det hittar ett villkor som är true, körs det blocket och allt annat ignoreras.
Struktur
if (condition1) {
// runs if condition1 is true
} else if (condition2) {
// runs if condition2 is true
} else {
// runs if none are true
}
Endast ett block kommer någonsin att köras — det första villkoret som matchar vinner.
Exempel
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 kontrollerar deliveryDistance mot varje villkor uppifrån och ner. Eftersom 7 inte är större än 20 eller 10, men är större än 5, matchar det tredje blocket och skriver ut "Delivery fee: 2€". else längst ner körs bara om inget av villkoren uppfylls.
En mycket viktig sak att förstå är att ordningen spelar roll. Eftersom Java stannar vid det första true-villkoret, bör du strukturera dina kontroller från det mest specifika till det mest generella — annars kan ett bredare villkor av misstag fånga värden som är avsedda för en mer specifik regel.
Tänk på else if-kedjor som en beslutsstege — programmet klättrar ner steg för steg tills det hittar rätt matchning.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal