Gyakorlati alapok
Bekért számok minimuma
Ebben a fejezetben folyamatosan bekért számok legkisebbjét, más szóval minimumát számoljuk és írjuk ki.
Az implementáció lényegileg azonos a Bekért számok maximuma című fejezetben foglaltakkal, de kis kivétellel: a bekért szám legkisebbjét, a minimumot keressük, ezért erre a már ismertetett "adatfelülírós" módszer módosított változatát használjuk fel. Alapértelmezésben, ha a bekért szám kisebb az előzőnél, akkor eltároljuk a minimum változóba (int minimum), másként viszont nem. Itt azonban további trükköket kell bevetnünk:
-
mivel int minimum változót nem inicializálhatjuk 0-val, ezért első értékadásának már a cikluson kívül meg kell történnie (minimum = szam), még pedig az első bekért számmal. Azonban ha itt a felhasználó 0 számot ad meg, akkor nyilvánvalóan minket tesztelget, hiszen nem gondolhatja komolyan, hogy az első számnak 0-t megadva bármilyen minimumot is képes lesz elérni. Ezért ezt a téves adatbevitelt lekezeljük és kissé megsértődve ki is lépünk belőle és a zokninkból (System.exit(0)):
if(szam == 0){
System.out.print("Nem lehetséges a
minimumkiválasztás!\n");
System.exit(0);
}
-
Ugyanakkor meg kell gátolnunk, hogy a felhasználó minimumot megadva 0-t gépeljen be, hiszen az már foglalt a kiértékeléshez, ezért a hátultesztelő ciklus alapfeltételéhez egy továbbit kell hozzáillesztenünk (szam < minimum && szam != 0).
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Adjon meg egy számot vagy kérje a minimumot
0-val!\n");
String szamString = in.nextLine();
int szam = Integer.parseInt(szamString);
int minimum = szam;
if(szam == 0){
System.out.print("Nem lehetséges a
minimumkiválasztás!\n");
System.exit(0);
}
do {
System.out.print("Adjon meg egy
számot vagy kérje a minimumot 0-val!\n");
szamString = in.nextLine();
szam = Integer.parseInt(szamString);
if(szam < minimum && szam != 0){
minimum =
szam;
}
} while (szam != 0);
System.out. println("Minimum: " + minimum);
}
}
Végeredmény (például):
Adjon meg egy számot vagy kérje a minimumot 0-val!
6
Adjon meg egy számot vagy kérje a minimumot 0-val!
4
Adjon meg egy számot vagy kérje a minimumot 0-val!
87
Adjon meg egy számot vagy kérje a minimumot 0-val!
100
Adjon meg egy számot vagy kérje a minimumot 0-val!
0
Minimum: 4
Láthatjuk azonban, hogy az algoritmus sok egyéb feltételt még nem ellenőriz le, többek közt rossz karakterek begépelése, negatív számok, stb. Ennek lekezelése már magasabb szintű programozási feladat.