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.

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

De to eksemplene som er gitt er likeverdige, men det andre er lettere å forstå.


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. Strengen du ikke trenger å jobbe vises aldri når ageden er større enn 60.


4
Oppgave
Java Syntax,  nivålekse
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å 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