Nyckelord: else-satsen, if-satsen, villkorssats
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.
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:
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.
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.
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.
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 ... }
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.
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.
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.
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.
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.
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"); }
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.
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.
Nej. En else-sats i Java har inget villkor.
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.
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!