Hirdetés

Keresés

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

  • Lortech
    addikt

    hja közben rájöttem, hogy ez igy mégse teljesen jo...
    most ismerös segítségével sikerült, de hát bonyolultabb ez, mint ahogy elsőre gondoltam :)

    így néz ki, ha ellenőrzi is a bevitt számot:

    class Lotto2 {
    static int[] szamok = { 0, 0, 0, 0, 0 };
    public static boolean bentvane(int szam) {
    boolean eredmeny = false;
    for (int i=0;i<=4;i++) {
    if (szam == szamok[i]) { eredmeny = true; }
    }
    return eredmeny;
    }
    public static void main(String[] args) {
    int random_szam = 0;
    for (int i=0;i<=4;i++) {
    do { random_szam = (1 + (int) (Math.random() * 95)); }
    while (bentvane(random_szam));
    szamok[i] = random_szam;
    }
    System.out.println("Lottó számok: ");
    for (int i=0;i<=4;i++) {
    System.out.print(szamok[i] + " ");
    }
    }
    }

    van még mit gyakorolnom... :(

    Vagy rövidebben (jobbnak nem feltétlenül jobb ez sem) pl. így:
    List<Integer> LottoSzamok = new ArrayList<Integer>();
    for(int i=0; i< 5;i++)
    {
    int lsz;
    while (LottoSzamok.contains(lsz=(1+(int) (Math.random() * 90))))
    ;
    LottoSzamok.add(new Integer(lsz));
    }
    for(int i=0; i< 5;i++)
    System.out.print("\n"+LottoSzamok.get(i));

    A bentvane függvényedet lehetne szépíteni, ha megállna a for ciklus már az első találatra, mert felesleges végigszaladni minden elemen, ha pl. már az első elem a keresett elem. Pl ki lehetne breakelni az eredmeny = true után. Vagy breaktől idegenkedők a for ciklus ciklusban maradási feltételéhez hozzávehetik a !eredmeny kifejezést (i<=4 && !eredmeny;), habár ezzel a + feltételvizsgálat miatt nem vagyunk sokkal előrébb. Vagy egyből return true; és akkor nem kell eredmeny valtozó se. (még egy return false; kellene ekkor a végére, hogy minden code path térjen vissza értékkel)

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