Nyckelord: else-if satsen, else-satsen, if-satsen, villkorssats, boolean, flödesschema
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.
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 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
Figur 1 nedan visar ett flödesschema som kan beskrivas som en else-if stege (engelska: else-if ladder).
Det flödesschemat visar är att:
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.
Else-if-satsen har samma syntax som if-satsen.
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.
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 ... }
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.
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
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:
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
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
/// 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.
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.
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.
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 { }.
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.
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!