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 fenti példa azonban abból a szempontból is érdekes, hogy kicsit egyszerűbbé tehetjük a kódot a kapcsos kapcsos zárójelek elhagyásával:

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

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

Mindhárom példa egyenértékű.


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ézed a bal oldali kódot, úgy tűnik, hogy a képernyőn a "Nem kell dolgozni" lesz a kimenet. 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. Soha nem jelenik meg a Nem kell dolgozni karakterlánc , 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