Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

Diskusia – 7. diel - Podmienky (vetvenie) v Jave

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Odpovedá na Alesh
Václav Dachs:19.1.2021 19:13

Aha, tak to jsem se vlastně učil před víc jak 20 lety a za těch víc jak 20 let, co se živím převážně hudbou, jsem to úspěšně zapomněl :-D Díky za refresh :-)

Odpovedať
+1
19.1.2021 19:13
S úsměvem jde všechno lépe :-)
Avatar
Jan Křížek:21.3.2021 12:42

Ahoj,

příklady na podmínky jsou hezké, a tak, jen ten poslední ukázkový příklad na odmocninu se mi vážně nelíbí. Je špatně prezentovaný.

  1. Když uživatel zadá 0, pak mu to vyplivne větu, že "Odmocnina ze záporného čísla neexistuje!", což je pěkná blbost. 0 není ani záporné ani kladné číslo a navíc odmocnina z nuly je rovna nule.
  2. Věta "Odmocnina ze záporného čísla neexistuje!" je nepravdivá. Odmocnina záporného čísla existuje, jen taková hodnota leží až v množině komplexních čísel. Tedy, navrhuji, aby se tato věta upravila na "Odmocnina ze záporného čísla neexistuje na množině reálných čísel!"
 
Odpovedať
+2
21.3.2021 12:42
Avatar
Alesh
Tvůrce
Avatar
Odpovedá na Jan Křížek
Alesh:21.3.2021 13:21

Máš pravdu matematicky je to špatně, programátorsky to je ale v pořádku. Opravit by to asi chtělo, na druhou stranu to alespoň některé jedince vybičuje k zamyšlení, což je dobře. ;-)

 
Odpovedať
21.3.2021 13:21
Avatar
Odpovedá na Filip Vraník
Vojtěch Perník:5.5.2021 19:00

Rovnost se totiž v logických výrazech zapisuje pomocí dvou rovnítek (<code>==</code>), ne jen <code>=</code>.

 
Odpovedať
5.5.2021 19:00
Avatar
Odpovedá na Jan Křížek
Vojtěch Perník:5.5.2021 19:07

Ne, kód je zde dobře. Používá se tam totiž a >= 0. To znamená "a je větší nebo rovno nule". V tomto případě tedy může na blok else dojít jen v případě, kdy je a opravdu záporné.

 
Odpovedať
+1
5.5.2021 19:07
Avatar
Alesh
Tvůrce
Avatar
Odpovedá na Vojtěch Perník
Alesh:5.5.2021 19:59

V době, kdy on psal ten komentář, tak to skutečně bylo špatně, na základě jeho komentáře jsem opravil tu podmínku a zeditoval ten text v případě záporných čísel.

 
Odpovedať
+2
5.5.2021 19:59
Avatar
Martin Šiška:15.6.2022 21:50

Obsah je výborný! Avšak ako v iných lekciách preklad z češtiny mätie pri učení. Je to nedokonalé.

 
Odpovedať
15.6.2022 21:50
Avatar
Jiří Raszka:27.9.2022 0:50

Ahoj, chtěl bych poprosit o radu. U příkladu PODMÍNKY zadání < nebo > 5 bych chtěl vložit podmínku, když se vloží jiný znak než číslo, aby mi oznámil, že vložený znak není číslo, ale text.

Scanner sc = new Scanner(System.in, "Windows-1250");
System.out.println("Zadej nějaké číslo");
int a = Integer.parseInt(sc.nextLine());
if (a > 5)
{ System.out.println("Zadal jsi číslo větší než 5!");}
else if (a < 5) {
System.out.println("Zadal jsi číslo menší než 5!");}
else ????????????????????????
}
}
 
Odpovedať
27.9.2022 0:50
Avatar
Odpovedá na Jiří Raszka
Matúš Olejník:27.9.2022 9:59

Ahoj, ako prvé v takej situácii skús pozrieť dokumentáciu.

Samotný prevod na číslo z toho čo si zadal do konzoly, ako už vieš, robí metóda parseInt. Následne buď vygoogliš hotové riešenie alebo vygoogliš samotnú dokumentáciu k metóde, prípadne priamo vo vývojovom prostredí si vieš zobraziť dokumentáciu.

K metóde parseInt som našiel dokumentáciu tu (java 11) https://docs.oracle.com/…Integer.html#…)). Tu si môžeš všimnúť, že je napísané čo metóda robí atď, spolu s tým čo sa udeje keď do nej pošleš niečo iné než reťazec, ktorý by mohol byť číslo.

Throws:
NumberFormatEx­ception - if the string does not contain a parsable integer.

Keď vieš tieto informácie, tak vieš odchytiť danú chybu a vypísať čo potrebuješ. Neviem či už bola lekcia s try-catch, ale dá sa to ľahko pochopiť.

Scanner sc = new Scanner(System.in, "Windows-1250");
System.out.println("Zadej nějaké číslo");
try {
    int a = Integer.parseInt(sc.nextLine());

    if (a > 5) {
        System.out.println("Zadal jsi číslo větší než 5!");

    } else if (a < 5) {
        System.out.println("Zadal jsi číslo menší než 5!");
    }

} catch (NumberFormatException ex) {
    System.out.println("Nezadal jsi číslo!");
}
Odpovedať
+2
27.9.2022 9:59
/* I am not sure why this works but it fixes the problem */
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 149.