If-satsen i Java: Kontrollera logiken i programmen


Nyckelord: if-satsen, villkorssats, boolean, flödesschema

if-satsen i programmering

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.
If-sats Java

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

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 en variabel 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.

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.

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

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 ( ). 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

Vad menas med villkorssats inom programmering?

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.

Om jag vill kontrollera villkoret i if-satsen flera gånger, hur gör jag då?

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.

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!