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.
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:
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.
Kom ihåg: Det är möjligt att använda sig av ett eller flera villkor som anger ifall programmet ska utföra operationen.
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.
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.
Om vi använder oss av punkterna vi såg ovan och skriver in det i kodeditorn så får vi
if (logiskt uttryck) { // Operation / Flera operationer ... }
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.
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.
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.
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.
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.
if(x = 1) // ogiltigt, ger error if(x == 1) // tillåten jämförelse
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.
if(input == 'y' || 'Y') // ogiltigt, ger error if(input == 'y' || input == 'Y') // tillåten jämförelse
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
if (0 < x < 31) // ogiltigt, ger error if (0 < x && x < 31) // tillåten jämförelse
Generellt, ett felaktig användning av en operatorn kan undvikas genom att alltid placera variabeln som ska utvärderas på vänster sida av uttrycket. Kompilatorn kommer då att markera de misstag som utlöser en ogiltigt tilldelning.
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).
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.
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!