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.


4
Feladat
Java Syntax,  szintlecke
Zárt
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.

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