if1. Kijelentések sorrendje

Néha egy programnak sok különböző műveletet kell végrehajtania egy változó értékétől vagy egy kifejezés értékétől függően.

Tegyük fel, hogy a feladatunk a következő:

  • Ha a hőmérséklet magasabb, mint 20a fok, akkor vegyen fel egy inget
  • Ha a hőmérséklet foknál nagyobb 10és kisebb (vagy egyenlő) 20, akkor vegyen fel egy pulóvert
  • Ha a hőmérséklet magasabb, mint 0fok és kisebb (vagy egyenlő) 10, akkor vegyen fel esőkabátot
  • Ha a hőmérséklet foknál alacsonyabb 0, akkor vegyen fel egy kabátot.

Ezt a következőképpen lehet kódban ábrázolni:

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-elseAz utasítások egymásba ágyazhatók . Ez lehetővé teszi meglehetősen összetett logika megvalósítását egy programban.

A programozók azonban általában egy kicsit másképp írják ezt a konstrukciót:

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

A két példa egyenértékű, de a második könnyebben érthető.


else2. A blokk árnyalatai

Egy fontos szempont:

Ha nem használ göndör kapcsos zárójelet egy konstrukcióban if-else, akkor elsea legközelebbi előzőre hivatkozik if.

Példa:

A kódunk Hogyan fog működni
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");
}

Ha megnézi a bal oldali kódot, úgy tűnik, hogy a képernyőn a "Nem kell dolgozni" lesz a kimenete. De ez nem így van. A valóságban a elseblokk és a "Nem kell dolgozni" utasítás a második (a közelebbi) utasításhoz kapcsolódik if.

A jobb oldali kódban a kapcsolódó ifés elsepirossal vannak kiemelve. Ezenkívül a göndör zárójelek egyértelműen vannak elhelyezve, egyértelműen megmutatva, hogy milyen műveleteket kell végrehajtani. A Nem kell dolgoznod karakterlánc soha nem jelenik meg, ha agenagyobb, mint 60.



if-else3. Példa egy utasítás használatára

Mivel olyan jól megvizsgáltuk az if-elseállítást, mondjunk egy példát:

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
   }
}
A minimum két szám megjelenítése