Gyakorlati alapok
3 szám közül melyik a legnagyobb?
Ebben a fejezetben a címben megjelölt problémát programozzuk le a lehető legegyszerűbb eszközökkel. Az alapszintű eszköztár a következő:
-
valamint a már megismert, sokoldalú System.out.println() függvény.
Az algoritmus legfontosabb része a helyes feltételbeállítás, int a esetén:
(a > b && a > c)
A feltétel verbális olvasata: ha a nagyobb b-nél ÉS c-nél.
A vizsgálatot természetesen el kell végeznünk mindhárom szám esetében,
valamint mindegyikhez hozzá kell illesztenünk a kiértékelést is. Láthatjuk,
hogy az utóbbi, a System.out.println() függvény
többszörös használata kódredundanciát eredményez (funkcionális kódtöbbletet,
azaz azonos funkciójú kód többször is előfordul, amely alapértelmezésben
kerülendő objektumorientált szemlélet szerint). Ezt természetesen a
későbbiekben képesek leszünk optimalizálni, ám a jelen pillanatban ezen a
programozási szinten vagyunk.
Nézzük meg a futtatható Java-kódot:
class Main{
public static void main(String args[]){
int a = 1;
int b = 2;
int c = 3;
if (a > b && a > c)
System.out.println("Az 1. szám a
legnagyobb.");
else if (b > a && b > c)
System.out.println("A 2. szám a
legnagyobb.");
else if (c > a && c > b)
System.out.println("A 3. szám a
legnagyobb.");
}
}
Végeredmény:
A 3. szám a legnagyobb.
Ugyan még nem vettük az adatbekérést (Ami már eddig is nagyon hiányzott: az adatbekérés című fejezet), de ha már itt vagyunk, oldjuk meg a problémát ezzel a lehetőséggel is.
Kiértékeléskor érdemes egy további else ágat is beiktatnunk, hátha a gonoszkodó felhasználó mindhárom számra ugyanazt írja be.
import java.util.Scanner;
class Main{
public static void main(String args[]){
int a, b, c;
Scanner scanner = new Scanner(System.in);
System.out.print("Kérem, hogy gépelje be az 1. számot: ");
a = scanner.nextInt();
System.out.print("Kérem, hogy gépelje be a 2. számot: ");
b = scanner.nextInt();
System.out.print("Kérem, hogy gépelje be a 3. számot: ");
c = scanner.nextInt();
if (a > b && a > c)
System.out.println("Az 1. szám a
legnagyobb.");
else if (b > a && b > c)
System.out.println("A 2. szám a
legnagyobb.");
else if (c > a && c > b)
System.out.println("A 3. szám a
legnagyobb.");
else
System.out.println("Mindhárom szám
egyenlő.");
}
}
Végeredmény:
A 3. szám a legnagyobb.