NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 3 - Proměnné a typový systém v Javě

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Libor Ripper :8.8.2017 8:23

Baví mě to !

Odpovědět
8.8.2017 8:23
Je to radost mít radost
Avatar
dommynyk
Člen
Avatar
dommynyk:8.8.2017 11:00

Scanner qa = new Scanner (System.in);
System.out.prin­tln("Zadaj mi cislo a ja ho zdvojnasobim :)");
int cislo = qa.nextInt();
System.out.prin­tln(cislo * 2 + " Cislo je zdvojnasobene!!");

netreba tam ziadne parsovanie staci : .nextInt()

Odpovědět
8.8.2017 11:00
_________________________
Avatar
Odpovídá na dommynyk
Filip (animátor/programator):11.8.2017 20:59

Jj presne tak. Osobne niesom žiaden expert ale neviem prečo to tak v článku je alebo aký je v tom rozdiel. Bol by som rád ak by mi to niekto vysvetlil.

Odpovědět
11.8.2017 20:59
Nikdy sa nevzdávaj a choď si za svojim snom.......
Avatar
Atrament
Člen
Avatar
Odpovídá na Filip (animátor/programator)
Atrament:11.8.2017 22:11

Použití nextInt() sebou nese ještě povinnost ošetřit přebývající znak konce řádku, který nextInt() ve streamu nechává. Takže pokud se pokusíš načíst od uživatele číslo, a hned pak se ho zeptáš na nějaké slovo třeba takto:

System.out.print("Zadej číslo:");
int cislo = sc.nextInt();
System.out.print("Zadej slovo:");
String slovo = sc.nextLine();

tak zjistíš, že k vložení slova se jako uživatel vůbec nedostaneš, ono to jakoby rovnou odentruje za tebe - to je ten přebývající znak nového řádku z předchozího volání nextInt(). Aby to fungovalo správně, musel bys po volání nextInt() zavolat ještě extra nextLine():

int cislo = sc.nextInt();
sc.nextLine();

což je otrava, snadno se na to zapomíná a prostě to dělá problémy.

Navíc zavolání nextLine() a jeho následné parsování na Integer je paradoxně o něco málo efektivnější než použití nextInt(). Při načítání dat od uživatele to nehraje roli, protože tam nejvíce zdržuje ten uživatel, ale kdybys načítal data třeba z nějakého souboru a bylo by jich fakt hodně, tak už by se to projevilo.

 
Odpovědět
11.8.2017 22:11
Avatar
Odpovídá na Atrament
Filip (animátor/programator):11.8.2017 22:15

Ok ďakujem ti za odpoveď

Odpovědět
11.8.2017 22:15
Nikdy sa nevzdávaj a choď si za svojim snom.......
Avatar
Jan Chalupa
Člen
Avatar
Jan Chalupa:12.9.2017 12:58

Ahoj, jeden malý dotaz. Při výstupu textu, který zadá uživatel mám rozhozenou diakritiku, pracuji na Mac OS. Co mám udělat proto, aby to bylo v pořádku. Když zadám text na tvrdo do proměnné tak je to v pohodě.

 
Odpovědět
12.9.2017 12:58
Avatar
Odpovídá na Jan Chalupa
Zdeněk Zemek:12.10.2017 11:28

Ahoj, tenhle problém nemám a taky pracuju na Macu nebo linuxu. To Ti ale nepomůže že :-). Chtěl jsem říct, že bych zkusil načíst vstup v jiným kodování - Mac používá defaultně UTF-8, tak bych to napsal takto:
Scanner sc = new Scanner(System.in, "UTF-8");

Třeba to pomůže :-)

 
Odpovědět
12.10.2017 11:28
Avatar
Vojtěch Kačerovský:4.11.2017 17:43

Já jsem vždycky tak šťastný když se mi z toho něco povede nebo kód trochu upravím a on dělá to co chci! :-)

 
Odpovědět
4.11.2017 17:43
Avatar
Michal Vícha:7.1.2018 19:49

Exception in thread "main" java.lang.Run­timeException: Uncompilable source code - cannot find symbol
symbol: class scanner
location: class projekt2.Papousek
at projekt2.Papou­sek.main(Papou­sek.java:15)
C:\Users\admn\Ap­pData\Local\Net­Beans\Cache\8­.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 1 second)

... Scanner je udajně invalid :/

 
Odpovědět
7.1.2018 19:49
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na Michal Vícha
vajkuba1234:7.1.2018 20:52

Ukaz svuj kod.

Odpovědět
7.1.2018 20:52
No hope, no future, JUST WAR!
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 10 zpráv z 394.