Hirdetés

Új hozzászólás Aktív témák

  • bucsupeti
    senior tag

    Do-while-lal oldottam meg végül, köszi.

    public static void kaloriaKiir(ArrayList<Gyumolcs> ertekek, File f) {

    Scanner scan = new Scanner(System.in, "ISO-8859-2");
    System.out.println("Kérem a gyümölcs nevét: ");
    String nev = scan.nextLine();
    do {

    if (!gyum.toString().contains(nev)) {
    System.out.println("Nem megfelelő név, újat kérek!");
    nev = scan.nextLine();
    }

    } while (!gyum.toString().contains(nev));

    if (gyum.toString().contains(nev)) {
    System.out.println("Kérem a mennyiséget grammban: ");
    int menny = scan.nextInt();

    for (Gyumolcs gyum : ertekek) {
    if (nev.equals(gyum.Megnevezes)) {
    System.out.println(menny + " gramm " + gyum.Megnevezes + " " + gyum.kcal / 100 * menny + " gramm kalóriát tartalmaz.");

    }

    }

    }

    }

    Biztos sok sok furcsaság van a kódban, de most a cél átmenni a vizsgán. ;]

    A static metódus arra enged következtetni hogy valószínű ugyan abban az osztályban van ez a kaloriaKiir metódus amiben a main() és azért static hogy tudd meghívni a main-ben.
    Lehet hogy a vizsgára amire készülsz ez jó és elegendő. Én a következő osztályokkal dolgoznék:
    Gyumolcs : egyetlen gyümölcs adatait tároló POJO osztály. semmi extra metódus nem kell ebbe. Max a toString-et írd felül hogy az objektum értékeit adja vissza.
    KaloriaTabla : lenne benne egy ArrayList<Gyumolcs> lista, egy adatbeolvasó metódus ami feltöltené ezt a listát. Konstruktorba feltölteném a listát. Kell egy kereső metódus ami egy string alapján keres a listában a gyümölcs neve alapján és Gyumolcs-öt adnék vissza, vagy null-t ha nincs. (Ez az osztály lehetne akár singleton is, ha már tanultátok)
    A futtató osztályban (amiben a main() van), megírnám a felhasználói felületet, menüt, a névbekérést stb. Itt példányosítanám a KaloriaTabla-t és ennek a kereső metódusát hívogatnám.
    Igaza van Sirpi kollégának abban hogy a contains használata nem a legjobb megoldás. Ha contains-t használsz akkor kezeld úgy hogy nem csak egy hanem több gyümölcsöt is kaphatsz eredményül, és ilyenkor minden találatot jeleníts meg.

Új hozzászólás Aktív témák