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.

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

De to angivne eksempler er ækvivalente, men det andet er lettere at forstå.


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. Strengen, du ikke behøver at arbejde, vises aldrig, når ageden er større end 60.


4
Opgave
Java Syntax,  niveaulektie
Låst
This age doesn't work for me…
Sometimes we all want to change our age. First, they don't want to sell you cigarettes or beer. Then your hair starts thinning and your back aches! A programmer may not have control over time, but he or she has total control over data in programs. In this task, we correct an error so that a Person object's age variable receives a different value.

3. Eksempel på brug af et if-elseudsagn

Da vi udforskede 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