Sziasztok! Úgy látom itt feltehetek egy programozási problémakérdést.
Az a kérdésem hogy a Java-ban hogy lehet csinálni egy olyan ún. loop try-catch-ot, ha pl. int formátumra nem számot írunk be, (ugye a rossz formátum miatt a kivételkezelés nélkül a program kifagy.) akkor újra lehessen megadni, (újra megkérdez) a catch esetén?
A függvényrekurzió helyett ciklussal meglehetne oldani, de nem igazán akar működni... Kipróbáltam guglizni, egy boolean érték bitorlásával while előtesztelős ciklussal és do hátultesztelős ciklussal is próbáltam, de nem működik, mert végtelen ciklusba megy a program!
Itt a kódom. tudomásom szerint a hátultesztelős ciklussal kellene legjobban működnie, de végtelenbe megy ha eléri a catch-ot.
System.out.println("Adj meg a jelszavad:");
password = beolv.nextLine();
System.out.println("Adj meg az életkorod:");
boolean szamformatum;
do
{
try
{
szamformatum = true;
age = beolv.nextInt();
}
catch(Exception e)
{
System.out.println("Érvénytelen formátum! Újra:");
szamformatum = false;
}
} while(szamformatum == false);
}
Ha nem számot írok akkor folyamatosan végtelenül ezt írja ki: "Érvénytelen formátum! Újra:" Ha catch-ba beírom ez alá hogy: "age = beolv.nextInt();", akkor kifagy a progi.
return érték dolog, megoldhatja? return dolgot nem értem igazán...
Vki tudja hogy lehet megoldani rekurzió helyett h kivétel esetén, újra megkérje a program hogy a felhasználó adja meg újra jelen esetben az életkorát?
Segítséget előre is köszönöm!
Utoljára szerkesztette: wollnerd, 2014.10.17. 19:58:52