Java programozás 18. – Adatbekérés

Adatbekérés, avagy készítsünk interaktív programokat

Ahogy előre haladunk a programozás tanulásában egyre inkább felmerül az az igény, hogy ne csak előre megadott adatokkal dolgozzon a program, hanem menet közben mi is adhassunk neki munkát. Vagy egyszerűen csak befolyásoljuk a program működését. Az is szempont lehet, hogy adatbekéréssel tesztelésre szolgáló bemeneti értékekkel kideríthessük az esetleges szemantikai hibákat.

Az adatbekérést többféle módon is megoldhatjuk, én maradok az egyik egyszerű, direkt erre a feladattípusra készített osztály, a Scanner használatával. Látni fogjuk, hogy ez rugalmasan használható többféle típusú adat bevitelére is, és a használata meglehetősen egyszerű.

Mivel ez a Scanner egy előre megírt osztály, a program elkészítésének első lépése importálni azt a készítendő kódunkba, még a program osztályainak megadása előtt: import java.util.Scanner;

Ha ez megvan, ettől a ponttól kezdve deklarálhatunk Scanner típusú változót, és létrehozhatunk belőle egy Scanner objektumot, ami az adatbekérésben segítségünkre lesz. Nézzünk akkor egy példakódot, amiben lépésenként elmagyarázom, hogy melyik kiemelt sornak mi a szerepe.

import java.util.Scanner;

public class Adatbekeres
{
  public static void main( String[] args )
  {
    Scanner sc;

    sc = new Scanner(System.in);

    int szam;
    szam = sc.nextInt();

    sc.close();

    System.out.println("A bekert szam ketszerese: "+szam*2);
  }
}

A lényegi részeket kiemelve nézzük meg a program részeit:

  1. A kód elején a Scanner osztály importálásával kezdünk, mert enélkül nem tudjuk használni.
  2. Ha már használhatjuk, akkor létre kell hoznunk egy Scanner objektumot, ami majd az adatbekérést fogja végrehajtani. Ez történik meg a 7. sorban.
  3. A létrehozott Scanner objektumunkat egy sc nevű változóban fogjuk tárolni, így bármikor egyszerűen elérhetjük. Természetesen más nevet is megadhatunk neki, de lustaságból én nem adok meg hosszabb nevet, minek annyit gépelni 🙂
  4. A Scanner osztálynak meghívjuk a konstruktorát, és odaadjuk neki a System.in bemenetet, ami alapértelmezetten a billentyűzet. Ettől kezdve az objektumunk a billentyűzetről fogja beolvasni az általunk megadott adatokat.
  5. A Scanner objektumnak meghívjuk a nextInt() metódusát, amely a begépelt és Enter billentyűvel lezárt adatbevitel esetén a begépelt számot azonnal eltárolja egy int típusú változóba.
  6. Lezárjuk a Scanner-t, miután már nincs rá szükségünk.

Scanner-rel többféle típusú adatot is bekérhetünk. Ez csak a használt metódustól függ. Példaként álljon itt néhány úgy, hogy előtte szerepeljen a változó is, amiben eltároljuk a beírt adatot:

  1. String s = sc.nextLine();
  2. float f = sc.nextFloat();
  3. double d = sc.nextDouble();
  4. byte b = sc.nextByte();
  5. long l = sc.nextLong();

A Scanner használható arra is, hogy egy adatbekérésnél egy adott határoló mintát megadva darabolva kérjünk be valamit, mondjuk neveket szóközzel elválasztva. Erre azonban majd a Stringek split() metódusát fogjuk használni, így erre külön most nem térnék ki.

Következő lecke: StringBuilder

2 Replies to “Java programozás 18. – Adatbekérés”

  1. Pingback: Java programozás 20. – Fájlkezelés alapjai |

  2. Pingback: Java programozás 17. – Többdimenziós tömbök

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöljük.

*