Else-if satsen i Java: Komplettera if-satsen och else-satsen


Nyckelord: else-if satsen, else-satsen, if-satsen, villkorssats, boolean, flödesschema

else-if satsen Java Python programmering kod

Med hjälp av else-if satsen (engelska: else if statement) så kan man specificera ytterligare villkor i Java. Den här sidan kommer visa hur man kan använda en else-if sats i kombination med if-satsen och else-satsen som vi såg på föregående sidor. Vi kommer börja grundläggande med att gå igenom hur en else-if sats fungerar men kommer sen fokusera på exempel. Eftersom du förmodligen har fått en förståelse för hur if-satsen och else-satsen fungerar så fokus på att visa hur en else-if sats kan användas.

Vad är else-if satsen i Java?

En else-if sats i Java är, som namnet antyder, nära sammankopplat med if-satsen och else-satsen som vi gick igenom på föregående sidor. Man skulle kunna beskriva det som att en else-if sats används som ett ytterligare if-sats i programmet. Med andra ord, en else-if sats skulle kunna beskrivas som en komplement till en if-sats och en else-sats.

En else-if sats i Java är

  • En villkorssats som avgör vad som ska hända i programmet beroende på dess villkor.
  • Likt if-satsen har ett villkor som alltid resulterar i en variabel av typen boolean (true eller false)
  • Skapar grunden för logik i programmen.

Hur fungerar en else-if-sats i Java ?

En else-if sats i Java skulle kunna beskrivas som en förlängning av if-satsen, eller att vi kan använda ytterligare en if-sats efter den första. Helt enkelt, en else-if-sats hjälper till att lösa problem då man vill köra olika operationer beroende på vad olika villkor är. Beroende på vilket villkor som är uppfyllt, ska programmet köra en specifik operation, men inte alla samtidigt. Observera att if-satsen har högre prioritet än else-if satsen. Detta innebär att om if-satsens villkor är uppfyllt, så kommer programmet ignorera både else-if och else-satsen.

Viktigt att notera

  • Det är möjligt att använda flertalet else-if satser.
  • Ifall if-satsens logiska uttryck är true så kommer inte else-if satsen/satserna att exekveras (köra).
  • Det måste finnas en else-sats om en else-if-sats har skapats. Detta så att programmet kan ta sig vidare om ingen av if-villkoren är uppfyllda.

Figur 1 nedan visar ett flödesschema som kan beskrivas som en else-if stege (engelska: else-if ladder).

Else-if satsen i Java: Komplettera if-sats else-sats
Figur 1: Else-if satsen i Java illustrerad med ett flödesschema

Det flödesschemat visar är att:

  • Då if-villkor är true så utförs if-satsen kodblock och programmet går sedan vidare utan att testa de resterande villkoren.
  • Om if-villkor är false så går programmet vidare och kollar på else-if satsens villkor.
  • Programmet fortsätter vidare tills det kommer till det villkor som är sant. Skulle inget villkor vara sant så exekveras else-satsen.

En else-if sats i Java skulle kunna beskrivas som en förlängning av if-satsen, eller att vi kan använda ytterligare en if-sats efter den första.

Hur skapar man en else-if-sats i Java?

Else-if-satsen har samma syntax som if-satsen.

  • I Java, deklarerar man en else-if-sats med de reserverade orden else if följt av ett logiskt uttryck inom parantes ( ).
  • Det logiska uttrycket anger ett villkor som är antingen true (sant) eller false (falskt).
  • Operationerna innanför måsvingarna { } är det programavsnitt som hör till else-if-satsen.
  • Programmet kör operationerna tillhörande en else-if-sats om dess villkor är uppfyllt (true).

Notera att man enbart kan skapa en else-if-sats i samband med en if-sats och måste ha en efterföljande else-sats.

Syntax: Deklarera en else-if sats i Java

Nedan visar vi hur syntaxen för en else-sats ser ut. If-satsen specificeras som vanligt, följt av else-if satsen (rad 6-9 nedan), och sedan avslutas med else-satsen.

if (logiskt uttryck) {
         
      // Operation / Flera operationer ... 
}

else if (logiskt uttryck) {
         
      // Operation / Flera operationer ... 
}

else {
         
      // Operation / Flera operationer ... 
}

Exempel: Else-if satsen i Java

Låt oss ta ett par exempel på hur man kan använda en else-if sats i Java. Vi börjar med ett enklare exempel och avslutar sedan med två längre exempel där vi ska programmera ett rabattsystem för en butik och ett program som jämför slumptal.

Exempel 1: Skapa en else-if sats i Java

Likt det exemplet vi såg för else-satsen så visar vi nedan ett kort och enkelt exempel som tydligt visar hur en else-if sats kompletterar if-satsen och else-satsen.

int number = 8; 

if (number > 10) {
   System.out.println("Det här är IF-satsen"); 
} 

else if (number > 5) {
   System.out.println("Det här är ELSE-IF satsen");
}

else {
    System.out.println("Det här är ELSE satsen");
}

Vi får då utskriften

Det här är ELSE-IF satsen

Men låt oss ändra lite i villkoret för if-satsen och else-if satsen för att illustrera att if-satsen har högre prioritet än en else-if sats.

int number = 8; 

if (number > 3) {
   System.out.println("Det här är IF-satsen"); 
} 

else if (number > 5) {
   System.out.println("Det här är ELSE-IF satsen");
}

else {
    System.out.println("Det här är ELSE satsen");
}

Avslutningsvis, i koden ovan så är både if-satsens villkor och else-if satsens villkor uppfyllda. Men eftersom if-satsens villkor är uppfyllt (true) så kommer inte else-if satsens villkor att kontrolleras utan koden hoppar över else-if satsen och else-satsen och fortsätter i programmet. Vi får utskriften

Det här är IF-satsen

Exempel 2: Programmera ett rabattsystem med flera else-if-satser

Vi ska nu hjälpa en butik att programmera ett system som ska hjälpa dom beräkna hur mycket rabatt en kund får på sitt köp. Butiken har följande rabattsystem, om det totala köpet är större än:

  • 500 kronor får kunden 5 % rabatt.
  • 1000 kronor får kunden 10 % rabatt.
  • 1500 kronor får kunden 15 % rabatt.
  • 2000 kronor får kunden 20 % rabatt.

Vi vill nu programmera ett program som skriver ut hur stor rabatt kunden ska få och hur mycket kunden ska betala efter att rabatten är avdragen.

// Deklarerar en variabel med namnet "cost" som får värdet 1200.
int cost = 1200;     

// Om kostnaden är större eller lika med 2000 kronor                           
if(cost >= 2000){                               
    System.out.println("Rabatten är 20%");
    System.out.println("Kundens pris efter prisavdrag: " + cost * 0.8);      
}

// Om kostnadet är större eller lika med 1500 kronor
else if(cost >= 1500){                          
    System.out.println("Rabatten är 15%");
    System.out.println("Kundens pris efter prisavdrag: " + cost * 0.85);        
}

// Om kostnadet är större eller lika med 1000 kronor
else if(cost >= 1000){                          
    System.out.println("Rabatten är 10%");
    System.out.println("Kundens pris efter prisavdrag: " + cost * 0.9);        
}

// Om kostnadet är större eller lika med 500 kronor
else if(cost >= 500){                           
    System.out.println("Rabatten är 5%");
    System.out.println("Kundens pris efter prisavdrag: " + cost * 0.95);  
}

 // Om ingen av ovanstående if-satser är uppfyllda
else{                                          
    System.out.println("Rabatten är 0%"); 
    System.out.println("Kundens pris: " + cost);        
}

Utskriften i detta fall blir alltså:

Rabatten är 10%
Kundens pris efter prisavdrag: 1080.0

Exempel 3: Else-if sats i Java som kontrollerar slumptal

I det här exemplet ska vi använda klassen random för att skapa slumptal. Kommer du inte ihåg hur man använder klassen random för att generera slumptal i Java kan du läsa mer om det här.

Det vi vill att vårt programmet ska göra är

  • Skapa tre stycken variabler som tilldelas ett slumpmässigt heltal (int) mellan 0 och 4.
  • Om alla variabler är lika med varandra ska texten “Alla tre variabler är lika med varandra” skrivas ut.
  • Vidare, om inte alla variabler är lika med varandra ska programmet jämföra om två av variablerna är lika med varandra och i så fall skriva ut vilka.
  • Avslutningsvis, om ingen av variablerna skulle vara lika med någon annan, det vill säga, alla variabler är olika, så ska programmet skriva ut det.
/// Importerar klassen random
import java.util.Random;

public class exempel {
        public static void main(String[] args) {

            // Skapar en instans av klassen random
            Random rand = new Random();

            // Tre slumpmässiga heltal
            int randomNumA = rand.nextInt(5);
            int randomNumB = rand.nextInt(5);
            int randomNumC = rand.nextInt(5);

            // Skriver ut värdet på variablerna för att 
            // säkerställa att det har blivit korrekt.
            System.out.println("Värdet på variabel A är: " + randomNumA);
            System.out.println("Värdet på variabel B är: " + randomNumB);
            System.out.println("Värdet på variabel C är: " + randomNumC);
            
            // Kontrollerar om alla variabler är lika med varandra
            if (randomNumA == randomNumB && randomNumA == randomNumC) {
                System.out.println("Alla tre variabler är lika med varandra");
            }

            // Om variabel A är lika med variabel B
            else if (randomNumA == randomNumB) {
                System.out.println("Variabel A är lika med Variabel B");
            }
            
            // Om variabel A är lika med variabel C
            else if(randomNumA == randomNumC) {
                System.out.println("Variabel A är lika med Variabel C");
            }

            // Om variabel B är lika med variabel C
            else if(randomNumB == randomNumC) {
                System.out.println("Variabel B är lika med Variabel C");
            }

            // Om ingen av variablerna är lika med varandra
            else {
                System.out.println("Ingen av variablerna är lika " +
                        "med varandra");
            }
        }
}

Avslutningsvis, i det här fallet blir det svårt att skriva ut vad svaret kommer bli eftersom vi får olika svar varje gång. Men kopiera gärna koden och testa själv.

Sammanfattning av Else-if satsen i Java

En else-if sats i Java används i kombination med if-satsen och else-satsen. En else-if sats används för att testa ytterligare villkor utöver if-satsen och ifall det är uppfyllda utföra ett angivet kodblock. En else-if-sats deklareras med de reserverade orden else if följt av ett logiskt uttryck inom parantes ( ). Det logiska uttrycket anger ett villkor som är antingen true (sant) eller false (falskt). Kodblocket som ska utföras om villkoret för en else-if sats är uppfylld skrivs innanför måsvingarna { }. Man måste använda en else-if-sats i samband med en if-sats och den måste ha en efterföljande else-sats. Om if-satsens villkor är uppfyllt så kommer inte else-if satsens villkor att utvärderas, eftersom den har lägre prioritet.

Vanliga frågor och svar: Else-if satsen i Java

Kan man använda flera else-if satser efter varandra?

Ja det går bra. Men kom ihåg att ifall en else-if sats utförs så kommer inte de efterföljande att utföras.

Hur skapar man en else-if sats i Java?

En else-if-sats deklareras med de reserverade orden “else if” följt av ett logiskt uttryck inom parantes ( ). Det logiska uttrycket anger ett villkor som är antingen true (sant) eller false (falskt). Avslutningsvis, kodblocket som ska utföras om else-if satsen är uppfylld skrivs innanför måsvingarna { }.

Måste man använda else-if satser eller kan jag använda flera if-satser?

Det kan du göra. Men då blir det flera separata villkorssatser som kontrolleras. En else-if sats samverkar med en if-sats, medans flera separata if-satser kontrolleras var för sig och kan alla vara uppfyllda samtidigt.

Feedback CodeBean

Hjälp oss göra Codebean bättre

Lämna gärna feedback med hjälp av stjärnorna nedan och hjälp oss att fortsätta göra sidan bättre.

Vad tyckte du om sidan?

Lämna gärna feedback och hjälp oss göra sidan bättre

Feedback gör oss bättre!

Lämna gärna feedback om vad du tyckte om avsnittet!