NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: ukončení cyklu

V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Lukáš Krása:28.2.2016 16:36

Zdravim potřeboval bych pomoct s tímto : mám cyklus for a do něj přes scanner vypisuji čísla a potřebuji ho ukončit tehdy kdy na vstupu neni nic (tedy zmáčknu enter) Děkuji za odpovědi

 
Odpovědět
28.2.2016 16:36
Avatar
Lukáš Krása:28.2.2016 16:50

chyba : má tam být cyklus WHILE :)

 
Nahoru Odpovědět
28.2.2016 16:50
Avatar
Lukáš Krása:28.2.2016 17:08

přikládám ještě ten cyklus :) ale takle mi to nefunguje :/

Editováno 28.2.2016 17:09
 
Nahoru Odpovědět
28.2.2016 17:08
Avatar
Ernest Klonkay:28.2.2016 18:39
if(!sc.hasNextInt())
break;
Editováno 28.2.2016 18:40
 
Nahoru Odpovědět
28.2.2016 18:39
Avatar
Odpovídá na Ernest Klonkay
Lukáš Krása:28.2.2016 18:54

to mi nefunguje :/ ale jinak děkuji :)

 
Nahoru Odpovědět
28.2.2016 18:54
Avatar
Filip Oborník:28.2.2016 19:22

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?

Nahoru Odpovědět
28.2.2016 19:22
"Good judgment comes from experience, and a lot of that comes from bad judgment." Will Rogers
Avatar
Odpovídá na Filip Oborník
Lukáš Krása:28.2.2016 19:34

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 :)

 
Nahoru Odpovědět
28.2.2016 19:34
Avatar
Odpovídá na Lukáš Krása
Filip Oborník:28.2.2016 19:37

To jsem pochopil, ale pořád si nedokážu představit, co dělá ta podmínka:

if (args.length() == 0) {
        break;
}
Nahoru Odpovědět
28.2.2016 19:37
"Good judgment comes from experience, and a lot of that comes from bad judgment." Will Rogers
Avatar
Odpovídá na Filip Oborník
Lukáš Krása:28.2.2016 19:38

to je jen takovej muj pokus :) je to blbost

 
Nahoru Odpovědět
28.2.2016 19:38
Avatar
Filip Oborník:28.2.2016 19:40

aha...
Pro příště sem dej kód bez "pokusů", akorát jsem si řikal, co to tam sakra má dělat ;)

Nahoru Odpovědět
28.2.2016 19:40
"Good judgment comes from experience, and a lot of that comes from bad judgment." Will Rogers
Avatar
Filip Oborník:28.2.2016 20:19

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 :)

Editováno 28.2.2016 20:19
Nahoru Odpovědět
28.2.2016 20:19
"Good judgment comes from experience, and a lot of that comes from bad judgment." Will Rogers
Avatar
Odpovídá na Filip Oborník
Lukáš Krása:28.2.2016 20:30

tak to musim ty čísla před vstupem do cyklu převést na String?

 
Nahoru Odpovědět
28.2.2016 20:30
Avatar
Odpovídá na Lukáš Krása
Filip Oborník:28.2.2016 20:38

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.

Nahoru Odpovědět
28.2.2016 20:38
"Good judgment comes from experience, and a lot of that comes from bad judgment." Will Rogers
Avatar
Odpovídá na Filip Oborník
Lukáš Krása:28.2.2016 21:07

moc si asi nerozumíme :D

 
Nahoru Odpovědět
28.2.2016 21:07
Avatar
pocitac770
Tvůrce
Avatar
Odpovídá na Lukáš Krása
pocitac770:28.2.2016 23:23

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.parse­Int(text) na číslo...

 
Nahoru Odpovědět
28.2.2016 23:23
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 15 zpráv z 15.