Else-satsen i Java: utför operationer när if-satsens villkor inte är uppfyllda


Nyckelord: else-satsen, if-satsen, villkorssats

Else-satsen i programmering

Den här sidan kommer gå igenom else-satsen (engelska: else-statement) i Java. En else-sats används i samband med if-satsen (som vi såg på föregående sida) när man vill utföra en eller flera operationer när ingen av villkoren i if-satsen är uppfyllda. Med andra ord, vi får möjlighet att införa ett kodblock som utförs om inte if-satsens villkor är uppfyllt.

Vad är en else-sats i Java?

I Java, använder man else-satsen som ett valfritt tillägg i samband med en if-sats. Else-satsen anger vad som ska hända i programmet när villkoret i en if-sats inte är uppfyllt, med andra ord när if-villkoret är false. If-satsen säger vilka operationer som programmet ska exekvera (utföra) när if-satsen är sann. En else-sats kommer inte att fungera om den inte är associerad med en if-sats. Med andra ord, du kan inte bara använda en else-sats.

De engelska ord som används för if- och else-satsen illustrerar hur man kan tänka sig hur de samarbetar. Helt enkelt, “om (if) är sant, utför det här och det här, men annars (else), utför istället det här”. Noterbart är att till skillnad från if-satsen så har inte else-satsen något villkor den testar innan den utför operationerna i sitt kodblock, men mer genomgående om det längre ned.

En else-sats i Java:

  • Måste användas i samband med en if-sats.
  • Vad som ska utföras om if-satsens villkor inte är sant.
  • Else-satsen har inget villkor.

Hur fungerar else-satsen i Java?

Utan else-satsen, går programmet direkt vidare efter if-satsen, men har man specificerat en else-sats, så kommer programmet först exekvera alla operationer som är specificerade i else-satsen. På motsvarande sätt, om villkoret i if-satsen är uppfyllt (true), så kommer programmet exekvera operationerna i if-satsen som vanligt, men ignorera operationerna i else-satsen.

Else-satsen anger vad som ska hända i programmet när villkoret i en if-sats inte är uppfyllt.

På liknande sätt som för if-satsen, låt oss ta och rita upp en else-sats med hjälp av ett flödesschema. Om du inte vet vad ett flödesschema är eller behöver fräscha upp minnet lite så kan du läsa mer om flödesscheman i artikeln om algoritmer. Flödesschemat visar hur if-villkoret avgör om if-satsens operationer ska utföras om if-villkoret är true eller om else-operationerna ska utföras om if-villkoret inte är uppfyllt. Det vi ser helt enkelt är att ifall if-villkoret inte är uppfyllt så utför programmet else-satsens kodblock innan det det fortsätter vidare.

Else-satsen Java Else Statement

Figur 1: Else-satsen i Java illustrerad med ett flödesschema

Varför använda en else-sats i Java?

Genom att enbart använda If-satsen så säger man att om ett villkor är sant, så kommer programmet utföra ett block med operationer och om villkoret inte är sant (alltså falskt) så kommer det inte att göra det. Men tänk om vi vill göra något annat om villkoret är falskt. Här kommer else-satsen till användning. Vi kan använda else-satsen tillsammans med If-satsen för att utföra ett kodblock när If-satsens villkor inte är uppfyllt.

Hur skapar man en else-sats i Java?

  • I Java deklarerar man en else-sats genom det reserverade ordet else
  • En elsesats har inget villkor
  • En else-sats utför operationerna tillhörande else-satsen om alla föregående if-villkor är false (ej uppfyllda)

Observera att else-satsen inte har något logiskt uttryck, eftersom else-satsen alltid kommer utföras om det logiska uttrycket i if-satsen är false. Det är alltså if-satsen som styr om else-satsen ska utföras eller inte.

Syntax: Deklarera en else-sats i Java

Nedan visas hur syntaxen för en else-sats ser ut. If-satsen specificeras som vanligt, följt av else-satsen som skapas med det reserverade ordet else.

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

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

Exempel: Else-satsen i Java

Vi ska nu se två förhållandevis enkla exempel som visar hur man använder en else-sats i kombination med if-satsen. Vi börjar med ett exempel där vi bara ska skapa en else-sats och skriva ut en text. Det andra exemplet får vi tänka till lite mer då vi ska programmera en lampa som ska styras med hjälp av en knapp.

Exempel 1: Skapa en else-sats i Java

Nedan visar vi ett kort och enkelt exempel som tydligt visar hur else-satsen kompletterar if-satsen.

int number = 5; 

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

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

Eftersom variabeln number inte är större än värdet 6 (if-satsens villkor) så kommer utskriften att bli:

Det här är ELSE-satsen

Men om vi istället ändrar variabeln number till

int number = 8;

Får vi istället utskriften

Det här är IF-satsen

Det blir väldigt tydligt att else-satsen enbart utför operationerna om if-satsens villkor inte är uppfyllt. Vill du testa koden ovan själv klicka på knappen nedanför. Testa gärna ändra villkoren och lägg till flera olika jämförelser i if-satsens villkor.

Exempel 2: Använd en if-sats och en else-sats för att kontrollera en lampa

Låt oss ta ett exempel där du kan tänka dig att du vill programmera en lampa. Om lampan är släckt och vi trycker på lampknappen, vill vi tända lampan. Om lampan däremot redan är tänd, vill vi släcka lampan – trots att vi trycker på samma knapp! Samma knapp kan alltså utföra olika kommandon, beroende på vilket villkor vi har. I det här fallet har vi två villkor: tänt, eller släckt.

Vi ritar upp det med ett flödesschemat i figur 2 nedan för att visa hur programmet ska fungera.

Else-satsen java Exempel Uppgift
Figur 2: Exempel på else-satsen i Java

Vi har redan stött på datatypen boolean, den så kallade booleska variabeln, som har värdet true eller false. Nu skapar vi en variabel som håller koll på om lampan är tänd eller släckt.

// Variabeln deklareras till false, alltså är den släckt
boolean isLampOn = false; 

Vi vill att programmet ska släcka lampan om den är tänd och tända lampan om den är släckt. Det går ju inte tända lampan om den redan är tänd eller släcka lampan när den redan är släckt. Vi tar och använder if-satsen och else-satsen för att programmera detta.

// Om lampan är true, alltså tänd
if(isLampOn == true){    

   // Sätt variabeln isLampOn till false, lampan släcks. 
   isLampOn = false;     
} 

// Om if-satsens villkor inte är sant (true)
else{                  

    // Sätt variabeln till true, lampan tänds.
    isLampOn = true;       
}

Det vill säga, om variabeln isLampOn är true, kommer vi ändra variabelns värde till false. Avslutningsvis, på motsvarande sätt sätter vi variabeln till true om if-satsen inte är uppfylld med hjälp av else-satsen.

Vanliga misstag när man använder Else-satsen i Java

Avslutningsvis ska vi kolla på ett par enkla och vanliga misstag som är lätt att råka göra. Notera att det här är bara ett par vanliga misstag som vi noterat, det finns självklart fler misstag man kan råka göra.

  • Ett vanligt misstag är faktiskt att man inte är uppmärksam på att det behövs en else-sats. Man kanske står vid ett “vägskäl” i sitt program och, till exempel, frågar användaren om input. Men om man bara specificerar vad som ska hända i ett av fallen (if) och inte vad som händer annars (else) så kan det bli så att man inte kommer vidare i programmet. Ett exempel skulle kunna vara att ifall ditt program ber användaren skriva in sitt lösenord. Om (if-satsen) användaren skriver in rätt lösenord så ska programmet gå vidare. Men annars, (else-satsen) om användaren skriver in fel, så bör ett felmeddelande visas. Om du inte skulle använda dig av else-satsen så kommer inte användaren veta att det är fel lösenord och förmodligen anta att det är något fel på programmet, snarare än att det är fel lösenord.
  • Använda ett villkor i else-satsen. Kom ihåg, en elsesats har inget villkor. Vill vi istället ha ett till villkor vi ska testa efter if-satsen så får vi använda en else-if sats som vi ska se på nästa sida.
  • Råka använda ett semi-kolon efter If-satsen, kanske inte så vanligt men det kan hända. Notera att din kompilator mest troligt kommer varna dig för det misstaget. Exemplet nedan visar hur det kan se ut.
int x = 5;

if( x > 10) {
    System.out.print("X är större än 10");
};
            
else {
    System.out.print("X är inte större än 10");
}

Sammanfattning av else-satsen i Java

En else-sats i Java anger vad som ska hända i programmet när villkoret i den tillhörande if-satsen inte är uppfyllt, med andra ord när if-villkoret är false. Använder man enbart en if-sats så går programmet direkt vidare efter if-satsen, men har man specificerat en else-sats, så kommer programmet utföra alla operationer inom else-satsens kodblock ifall if-satsens villkor ej är uppfyllt.

  • En else-sats i Java måste användas i samband med en if-sats.
  • Else-satsen deklareras med det reserverade ordet else, följt av måsvingar { } för tillhörande kodblock.
  • En else-sats har inget villkor.

Vanlig frågor och svar: Else-satsen i Java

Måste man använda en else-sats i Java?

Nej det måste du inte. I Java, använder man else-satsen som ett valfritt tillägg i samband med en if-sats. Det ska dock sägas att det kan vara fördelaktigt att använda en else-sats, framförallt då det finns en risk att programmet “fastnar” om inte if-satsens villkor är uppfyllt.

Kan else-satsen ha ett villkor?

Nej. En else-sats i Java har inget villkor.

Kan man utföra både if-satsen och else-satsen?

Nej. Ditt program kommer att utföra antigen eller. Är if-satsens villkor uppfyllt så kör programmet kodblocket tillhörande if-satsen. Är inte if-satsens villkor uppfyllt så exekveras kodblocket tillhörande else-satsen.

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!