Diskuze: ukončení cyklu
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 15 zpráv z 15.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
chyba : má tam být cyklus WHILE
přikládám ještě ten cyklus ale takle mi to nefunguje :/
if(!sc.hasNextInt())
break;
Ahoj,
asi bych to vyřešil takle:
String zadaneCislo;
do {
zadaneCislo = "";
zadaneCislo = sc.nextLine();
} while (zadaneCislo.length() != 0);
pokud by bylo potřeba pracovat se zadaným čísle, tak se dá naprasovat
int cislo = Integer.parseInt(zadaneCislo);
-> samozřejmě by to chtělo ošetřit zadání písmena místo čísla, ale to už bys musel dát do try-catch bloku (vyjímky) a to nevím jesli už znáš.
Btw jaký význam tam u tebe v kódu má ta podmínka?
no ja zadavám čísla z klávesnice a ty si ukládám do proměnný. A ty čísla rovnou (tu metodu na tom obrazku nemam) používám do metody. no a já chci aby mi program nedovolil zadavat další čísla když například dám v konzoli enter a nebo prázdný řetězec nebo tak něco
To jsem pochopil, ale pořád si nedokážu představit, co dělá ta podmínka:
if (args.length() == 0) {
break;
}
aha...
Pro příště sem dej kód bez "pokusů", akorát jsem si řikal, co to tam
sakra má dělat
Ještě trochu elegantnější řešení je možná tohle:
while(!(text = sc.nextLine()).isEmpty()) {
...
}
ale pořád se nevyhneš parsování
pokud byste někdo měl lepší řešení, třeba bez použití Stringu, tak sem s ním, rád se přiučím
tak to musim ty čísla před vstupem do cyklu převést na String?
Ne, to jsi mě špatně pochopil. Ty je už načteš jako String pomocí metody sc.nextLine() a pak, pokud s nimi budeš chtít pracovat jako s čísly, tak je budeš muset naparsovat.
Metoda .nextInt() vezme text z konzole a převede ho na číslo. Tady si ten text vezmeš pro účel zjištění, jestli tam nějakej je, a pokud ano, tak ho ručně převedeš pomocí Integer.parseInt(text) na číslo...
Zobrazeno 15 zpráv z 15.