1. Rekkefølge av ifuttalelser

Noen ganger må et program utføre mange forskjellige handlinger avhengig av verdien til en variabel eller verdien til et uttrykk.

La oss si at oppgaven vår er noe slikt:

  • Hvis temperaturen er større enn 20grader, så ta på deg en skjorte
  • Hvis temperaturen er større enn 10grader og mindre enn (eller lik) 20, så ta på deg en genser
  • Hvis temperaturen er høyere enn 0grader og mindre enn (eller lik) 10, ta på en regnfrakk
  • Hvis temperaturen er mindre enn 0grader, ta på et strøk.

Slik kan dette representeres i kode:

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-elsesetninger kan nestes i hverandre. Dette gjør det mulig å implementere ganske kompleks logikk i et program.

Men eksemplet ovenfor er også interessant ved at vi kan gjøre koden litt enklere ved å utelate de krøllete klammeparentesene:

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");

Imidlertid skriver programmerere vanligvis denne konstruksjonen litt annerledes:

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");

Alle disse tre eksemplene er likeverdige.


2. Nyanser av elseblokken

Et viktig poeng:

Hvis du ikke bruker bukseseler i en if-elsekonstruksjon, refererer den elsetil den nærmeste forrige if.

Eksempel:

Koden vår Hvordan vil det fungere
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");
}

Hvis du ser på koden til venstre, ser det ut til at skjermutgangen blir "Du trenger ikke jobbe". Men det er ikke tilfelle. I virkeligheten elseer blokken og "Du trenger ikke å jobbe"-setningen assosiert med den andre (den nærmere) ifsetningen.

I koden til høyre er de tilhørende ifog elseuthevet i rødt. I tillegg er de krøllete seler plassert utvetydig, og viser tydelig hvilke handlinger som skal utføres. Er strengen du ikke trenger å jobbe aldri vist når ageer større enn 60?



3. Eksempel på bruk av et if-elseutsagn

Siden vi utforsket if-elseutsagnet så godt, la oss gi et eksempel:

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
   }
}
Viser minimum to tall