Avatar
Lukáš Krása:

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. února 16:36
Avatar
Lukáš Krása:

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

 
Nahoru Odpovědět 28. února 16:50
Avatar
Lukáš Krása:

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

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

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

 
Nahoru Odpovědět 28. února 18:54
Avatar
Filip Oborník (Oboras):

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. února 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 (Oboras)
Lukáš Krása:

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. února 19:34
Avatar
Odpovídá na Lukáš Krása
Filip Oborník (Oboras):

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. února 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 (Oboras)
Lukáš Krása:

to je jen takovej muj pokus :) je to blbost

 
Nahoru Odpovědět 28. února 19:38
Avatar
Filip Oborník (Oboras):

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  +1 28. února 19:40
"Good judgment comes from experience, and a lot of that comes from bad judgment." Will Rogers
Avatar
Filip Oborník (Oboras):

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. února 20:19
Nahoru Odpovědět 28. února 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 (Oboras)
Lukáš Krása:

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

 
Nahoru Odpovědět 28. února 20:30
Avatar
Odpovídá na Lukáš Krása
Filip Oborník (Oboras):

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. února 20:38
"Good judgment comes from experience, and a lot of that comes from bad judgment." Will Rogers
Avatar
pocitac770
Redaktor
Avatar
Odpovídá na Lukáš Krása
pocitac770:

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  +1 28. února 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.