Nyckelord: if-satsen, villkorssats, boolean, flödesschema
Den här artikeln kommer behandla if-satsen (engelska: if-statement) i Java. If-satsen är en villkorssats som möjliggör att vi kan styra logiken i våra program. Eftersom all programmering bygger på villkor kan man se if-satsen som en av grundpelarna inom programmering. If-satsen i Java avgör med ett logiskt uttryck, en boolean (sant eller falskt), om programmet ska utföra en viss operation eller inte.
Vad är en if-sats i Java?
En if-sats i Java avgör ifall programmet ska utföra en (eller flera) operationer, beroende på om ett eller flera angivna villkor är uppfyllda eller inte. Villkoret som anges är ett logiskt uttryck som antingen är true (sant) eller false (falskt). Med andra ord, vi använder ett logiskt uttryck för att bestämma ifall våra program ska utföra viss kod eller ej. Med hjälp av if-satsen kan man ange vad som ska hända om ett villkor är uppfyllt eller ej. Detta skapar villkorsstyrd programmering vilket är grunden för all logik i ett program.
En if-sats i Java:
- Är en villkorssats.
- Har ett villkor som alltid resulterar i en variabel av typen boolean (true eller false).
- Avgör vad som ska hända i programmet beroende på dess villkor.
- Skapar grund för logik i program.
Hur fungerar if-satsen i Java?
En if-sats i Java avgör ifall programmet ska utföra en operation (eller operationer), beroende på om ett eller flera villkor är uppfyllda eller inte. Villkoret är ett logiskt uttryck som antingen är true (sant) eller false (falskt). Kom ihåg, Inom programmering beskriver vi ett sant uttryck med det reserverade ordet true och ett falskt uttryck med false.
Låt oss ta och rita upp en if-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.
I Figur 1 nedan visar vi en illustration över hur if-satsen i Java fungerar.
- Först startar programmet och kommer fram till if-villkoret.
- Om if-villkoret är true, det vill säga att villkoret är uppfyllt, så går programmet vidare och utför en eller flera operationer som vi har specificerat.
- Men ifall villkoret inte är uppfyllt, med andra ord false, så hoppar programmet helt enkelt över operationerna och går vidare.
Figur 1: If-satsen i Java illustrerat med ett flödesschema
Kom ihåg: Det är möjligt att använda sig av ett eller flera villkor som anger ifall programmet ska utföra operationen.
Varför ska man använda en If-sats i Java?
Man kan säga att villkorssatserna i programmering, och mer specifikt if-satsen, används som en beslutspunkt för att kontrollera en rad olika villkor. Baserat på dessa villkor så kan man sedan vidta en annan åtgärd för varje villkor beroende på resultatet. If-satserna liknar loopar (som vi ska se i nästa kapitel) eftersom de båda kontrollerar ett givet villkor. Men if-satsen kontrollerar endast en gång, medan loopen fortsätter att kontrollera det tills villkoret inte längre är sant.
If-satsen i Java avgör om en operation ska utföras, beroende på om ett villkor är uppfyllt eller inte.
Exempel: När kan man använda en if-sats?
Säg att du vill utföra något i ditt program beroende på vad du får för input från en användare. Då passar en if-sats perfekt. Till exempel, säg att du vill visa en introduktionsfilm för en användare som använder ditt program för första gången. Du vill ju förstås inte visa upp introduktionsfilmen om användaren redan har sett filmen. Då styr du enkelt logiken i ditt program genom att ta in information av användaren och baserat på svaret så visar du introduktionsfilmen eller går vidare i programmet. Det var självklart bara ett exempel, det finns otaliga möjligheter att använda if-satser. Kom ihåg, i all programmering så styrs logiken i programmet med hjälp av if-satser.
Hur skapar man en if-sats i Java?
- En If-sats deklarer man enkelt genom det reserverade ordet if följt av ett logiskt uttryck inom parantes ( ).
- Operationerna innanför måsvingarna { } är det programavsnitt som hör till if-satsen och som programmet kör om villkoret är true (uppfyllt villkor).
- Om if-satsen är false (ej uppfyllt villkor), kommer programmet fortsätta köra efter måsvingarna.
Syntax: Deklarera en If-sats i Java
Om vi använder oss av punkterna vi såg ovan och skriver in det i kodeditorn så får vi
Syntaxmall: byt ut platshållarna mot konkreta namn, typer och värden.
if (logiskt uttryck) {
// Operation / Flera operationer ...
}
Exempel: If-satsen i Java
Låt oss ta ett par exempel på hur man skapar och använder en if-sats i Java. Vi ska först ta ett enkelt exempel bara för att visa hur if-satsen fungerar. Sedan ska vi se två exempel på hur vi kan använda if-satsen, det första med en boolean-variabel och det andra där vi kontrollerar värdet på en int-variabel.
Exempel 1: Skapa en If-sats
I nedanstående program visar vi ett exempel på hur if-satsen enbart kör operationerna om villkoret är true. Programmet fortsätter som vanligt efter if-satsen.
public class Main{
public static void main(String[] args) {
// If-satsen är sann, och kommer därför att köras
if(true){
System.out.println("If-satsen körs");
}
// If-satsen är falsk, och kommer därför inte att köras
if(false){
System.out.println("If-satsen körs inte");
}
// Programmet fortsätter som vanligt
System.out.println("Programmet fortsätter");
}
}
Ger utskriften:
If-satsen körs
Programmet fortsätter
Vill du testa koden ovan själv, klicka på knappen nedanför. Testa gärna byta ut det logiska villkoret och lägg till variabler och jämförelseoperatorer. Det vill säga, att helt enkelt testa dig fram.
Exempel 2: Skapa en if-sats som använder ett värde av typen boolean
Det är innanför parenteserna i if-satsen som villkoret specificeras och det går utmärkt att uttrycka villkoren med booleans (det vill säga true eller false).
// Variabel som tilldelas värdet true
boolean sayHelloWorld = true;
// Om variabeln är sann (true) utför kommandot
if(sayHelloWorld){
// Skriv ut textsträngen
System.out.println("Hello, World!");
}
Det koden säger är att om variabeln sayHelloWorld är sann (alltså true), så ska programmet skriva ut textraden "Hello, World!" i terminalfönstret. Om man istället ändrar rad 2 till
boolean sayHelloWorld = false;
och kör programmet, kommer programmet inte skriva ut "Hello, World!" i terminalfönstret, eftersom programmet enbart kör operationen om if-satsen har värdet true.
Exempel 3: Skapa en if-sats med ett jämförelsevillkor
I if-villkoret kan man skriva ett logiskt uttryck, exempelvis ett jämförelsevillkor. Exempelvis, om vi vill kontrollera ifall en int variabel ligger inom ett intervall t.ex. mellan 0 och 200, sätter vi enkelt upp if-satsen med det logiska uttrycket. Det vi vill göra är att ifall variabeln num är större än 0 och mindre än 200 så får vi en utskrift: Number: num
int num = 100;
if(num > 0 && num < 200){
System.out.println("Number: " + num);
}
Eftersom vi deklarerade num till 100 i detta fall, kommer texten Number: 100 skrivas ut i terminalfönstret, eftersom num är större än 0 och är mindre än 200. Det totala uttrycket i if-satsen är true, vilket innebär att if-satsen kommer utföra operationerna.
Vanliga misstag när man använder If-satsen i Java
Låt oss kolla på ett par enkla och vanliga misstag som är enkla att 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.
Kom ihåg också att din kompilator hjälper dig och lär varna dig innan du hinner gå vidare, men det är alltid bra att vara uppmärksam och noggrann.
Förutom enklare deklarationsfel, till exempel att man glömmer en av måsvingarna, så är det framförallt i villkoret av if-satsen som det är lätt att råka göra något fel. Nedan så visar vi vad vi menar. Vill du repetera jämförelse- och logiska operatorerna i Java så kan du göra det här.
Lika-med jämförelse operanden skrivs med dubbla likhetstecken, alltså ==, inte = . Ett enkelt lika-med tecken = är en tilldelning. För att till exempel jämföra ifall två variabler är lika varandra så använder vi ==. Se exemplet nedan där vi jämföra om x är lika med 1.
Avsiktligt fel: följande exempel visar kod som inte kompilerar.
int x = 1;
// Fel: x = 1 är en int-tilldelning, inte ett boolean-villkor.
if (x = 1) { System.out.println(x); }
// Rätt jämförelse:
if (x == 1) { System.out.println(x); }
Vidare, ett felaktigt användande av || operatorn. Förhållandena måste testas med separata jämförelser. Se kodexemplet nedan för en giltig, respektive ogiltig, jämförelse.
Avsiktligt fel: följande exempel visar kod som inte kompilerar.
char input = 'y';
// Fel: 'Y' är ett char-värde, inte ett boolean-uttryck.
if (input == 'y' || 'Y') { System.out.println(input); }
// Rätt:
if (input == 'y' || input == 'Y') { System.out.println(input); }
Avslutningsvis, ett felaktigt användande av && operatorn. Även de här förhållandena måste testas med separata jämförelser. Säg att vi vill testa ifall x är större än 0, men mindre än 31, se nedan för exempel
Avsiktligt fel: följande exempel visar kod som inte kompilerar.
int x = 15;
// Fel: Java stöder inte kedjade jämförelser på det här sättet.
if (0 < x < 31) { System.out.println(x); }
// Rätt:
if (0 < x && x < 31) { System.out.println(x); }
Jämförelsen == och tilldelningen = är olika operationer. Kompilatorn hittar vissa förväxlingar, men if (flag = true) är giltig Java och tilldelar variabeln. Läs därför villkoret noggrant.
Sammanfattning av If-satsen i Java
En if-sats i Java är en villkorssats som avgör ifall programmet ska utföra en operation, eller flera operationer, beroende på om ett eller flera angivna villkor är uppfyllda eller inte. Villkoret är ett logiskt uttryck som antingen är true (sant) eller false (falskt).
- Villkorssatserna, och mer specifikt if-satsen, används som en beslutspunkt för att kontrollera en rad olika villkor.
- If-satsen möjliggör att vi kan styra logiken i våra program.
- Det är möjligt att använda sig av ett eller flera villkor som anger ifall programmet ska utföra operationen.
Vanliga frågor och svar: If-satsen i Java
En If-sats deklarer man enkelt genom det reserverade ordet if följt av ett logiskt uttryck inom parantes ( ). Efter det deklarerar man det programavsnitt som hör till if-satsen med hjälp av måsvingar. Slutligen, innanför måsvingarna skriver man de operationer som man ska utföras om if-satsens villkor är uppfyllt
Det betyder att med hjälp av en villkorssats kan man styra hur flödet i programmet ska röra sig då ett visst villkor är uppfyllt. Med andra ord, med hjälp av villkor så kan man styra riktningen i programmen och utföra olika saker beroende på om dessa villkor är uppfyllda eller ej.
Antingen så kör du ditt program, eller i alla fall den delen av ditt program som innehåller if-satsen. Men enklast är förmodligen att du använder dig av en loop eller en metod. En loop gör så att du kan köra en del av ditt program så länge villkoret är uppfyllt, jämfört med if-satsen kontrollerar det endast en gång. En metod gör så att man kan använda samma kod, till exempel en if-sats, flera gånger om utan att skriva den om och om igen. Vi kommer självklart gå igenom både loopar och metoder i kommande kapitel.