1. Rækkefølge af ifudsagn

Nogle gange skal et program udføre mange forskellige handlinger afhængigt af værdien af ​​en variabel eller værdien af ​​et udtryk.

Lad os sige, at vores opgave er sådan her:

  • Hvis temperaturen er større end 20grader, så tag en skjorte på
  • Hvis temperaturen er større end 10grader og mindre end (eller lig med) 20, så tag en sweater på
  • Hvis temperaturen er større end 0grader og mindre end (eller lig med) 10, så tag en regnfrakke på
  • Hvis temperaturen er mindre end 0grader, så tag en frakke på.

Sådan kan dette repræsenteres 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-elseudsagn kan indlejres i hinanden. Dette gør det muligt at implementere ret kompleks logik i et program.

Men ovenstående eksempel er også interessant, fordi vi kan gøre koden lidt enklere ved at udelade de krøllede seler:

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 programmører normalt denne konstruktion lidt anderledes:

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 eksempler er ækvivalente.


2. Nuancer af elseblokken

En vigtig pointe:

Hvis du ikke bruger krøllede seler i en if-elsekonstruktion, så elserefererer den til den nærmeste forrige if.

Eksempel:

Vores kode 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 ud til, at skærmoutputtet bliver "Du behøver ikke arbejde". Men det er ikke tilfældet. I virkeligheden elseer blokken og "Du behøver ikke arbejde"-erklæringen forbundet med den anden (den tættere) ifsætning.

I koden til højre er de tilhørende ifog elsefremhævet med rødt. Derudover er de krøllede seler placeret utvetydigt, hvilket tydeligt viser, hvilke handlinger der vil blive udført. Vises strengen, du ikke behøver at arbejde, aldrig, når ageer større end 60?



3. Eksempel på brug af et if-elseudsagn

Da vi har udforsket erklæringen if-elseså godt, lad os give 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 tal