1. ifOrdningsföljd

Ibland behöver ett program utföra många olika åtgärder beroende på värdet på en variabel eller värdet på ett uttryck.

Låt oss säga att vår uppgift är ungefär så här:

  • Om temperaturen är högre än 20grader, ta på dig en skjorta
  • Om temperaturen är högre än 10grader och mindre än (eller lika med) , 20ta på dig en tröja
  • Om temperaturen är högre än 0grader och mindre än (eller lika med) , 10ta på en regnrock
  • Om temperaturen är lägre än 0grader, lägg sedan på en kappa.

Så här kan detta representeras i kod:

int temperature = 9;

if (temperature > 20)
   System.out.println("put on a shirt");
else // Here the temperature is less than (or equal to) 20
{
   if (temperature > 10)
      System.out.println("put on a sweater");
   else // Here the temperature is less than (or equal to) 10
   {
      if (temperature > 0)
         System.out.println("put on a raincoat");
      else // Here the temperature is less than 0
         System.out.println("put on a coat");
   }
}

If-elseuttalanden kan kapslas in i varandra. Detta gör det möjligt att implementera ganska komplex logik i ett program.

Men exemplet ovan är också intressant eftersom vi kan göra koden lite enklare genom att utelämna de lockiga hängslen:

int temperature = 9;

if (temperature > 20)
   System.out.println("put on a shirt");
else // Here the temperature is less than (or equal to) 20
   if (temperature > 10)
      System.out.println("put on a sweater");
   else // Here the temperature is less than (or equal to) 10
      if (temperature > 0)
         System.out.println("put on a raincoat");
      else // Here the temperature is less than 0
         System.out.println("put on a coat");

Men programmerare brukar skriva den här konstruktionen lite annorlunda:

int temperature = 9;

if (temperature > 20)
   System.out.println("put on a shirt");
else if (temperature > 10) // Here the temperature is less than (or equal to) 20
   System.out.println("put on a sweater");
else if (temperature > 0) // Here the temperature is less than (or equal to) 10
   System.out.println("put on a raincoat");
else // Here the temperature is less than 0
   System.out.println("put on a coat");

Alla dessa tre exempel är likvärdiga.


2. Nyanser av elseblocket

En viktig punkt:

Om du inte använder lockiga hängslen i en if-elsekonstruktion, hänvisar den elsetill närmast föregående if.

Exempel:

Vår kod Hur kommer det att fungera
int age = 65;

if (age < 60)
   if (age > 20)
      System.out.println("You must work");
else
   System.out.println("You don't have to work");
int age = 65;

if (age < 60)
{
   if (age > 20)
     System.out.println("You must work");
   else
     System.out.println("You don't have to work");
}

Om du tittar på koden till vänster så verkar det som att skärmutgången blir "Du behöver inte jobba". Men så är inte fallet. I verkligheten elseär blocket och "Du behöver inte arbeta"-satsen associerade med den andra (den närmare) ifsatsen.

I koden till höger är de tillhörande ifoch elsemarkerade i rött. Dessutom är de lockiga hängslen placerade entydigt, vilket tydligt visar vilka åtgärder som kommer att utföras. Visas aldrig strängen Du behöver inte arbeta när ageär större än 60?



3. Exempel på användning av ett if-elsepåstående

Eftersom vi utforskade if-elseuttalandet så bra, låt oss ge ett exempel:

import java.util.Scanner;
public class Solution {
   public static void main(String[] args)
   {
     Scanner console = new Scanner(System.in); // Create a Scanner object
     int a = console.nextInt(); // Read the first number from the keyboard
     int b = console.nextInt(); // Read the second number from the keyboard
     if (a < b)                   // If a is less than b
       System.out.println(a);     // we display a
     else                         // otherwise
       System.out.println(b);     // we display b
   }
}
Visar minst två siffror