Gyakorlati alapok

Bekért számok összege

 

Ebben a fejezetben folyamatosan bekért számok egyszeri összegét számoljuk és írjuk ki a világ legnagyobb örömére. A bekérés mechanizmusát és alapvető implementációját már ismerjük, bár itt egy kissé módosítanunk kell a feltételt, hiszen a felhasználó folyamatosan bemeneti adatokat gépel be és ezt valahogy meg is kell szakítani, amikor kéri a begépelt számok összegét. Ezt a legegyszerűbb módon úgy tudjuk megtenni, hogy ha 0 lesz a bekért szám, akkor történik meg az összeg kiírása. Természetesen erről már kezdettől fogva tájékoztatjuk:

 

System.out.print("Adjon meg egy számot vagy kérje az összeget 0-val!\n");

 

Az algoritmus kulcseleme, hogy a bekért szám (int szam) folyamatosan hozzáadódik az összeghez (int osszeg): osszeg += szam. Ez a művelet ugyanazt jelenti, mint ez a "klasszikus" megoldás: osszeg = osszeg + szam.

 

A 0 már csak megszakítja a hátultesztelő ciklust és kiíratja az összeget a konzolra:

 

System.out. println("Az összeg: " + osszeg);

 

A 0 számot a hátultesztelő ciklus feltétele ellenőrzi (while (szam != 0)).

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 


import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int szam = 0;
        int osszeg = 0;
        do {
            System.out.print("Adjon meg egy számot vagy kérje az összeget 0-val!\n");
            String szamString = in.nextLine();
            szam = Integer.parseInt(szamString);
            osszeg += szam;
        } while (szam != 0);
    System.out. println("Az összeg: " + osszeg);
    }
}

 

Végeredmény (például):

Adjon meg egy számot vagy kérje az összeget 0-val!
4
Adjon meg egy számot vagy kérje az összeget 0-val!
5
Adjon meg egy számot vagy kérje az összeget 0-val!
6
Adjon meg egy számot vagy kérje az összeget 0-val!
0
Az összeg: 15

 

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.