Diskuze: Přiřazení do proměnné
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 16 zpráv z 16.
//= 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.
Ne, hodnotu je třeba uvést jen proto, aby se dole mohl vypsat výsledek, jinak bys vypisoval proměnnou, která není inicializovaná.
Takže ak tomu chápem správne,
Java vyhubuje, aj keď sa kód využívajúci tú premennú ešte nevykonal
(resp. je tu len potenciálna možnost využitia takejto premennej? ) ?
Doteraz som pracoval len s interpretovanými jazykmi, preto si nie som istý
Interpreti mají nižší restrikce, Java tam vidí před přiřazením do proměnné vysledek spoustu podmínek a říká si, že kdyby ani jedna z nich neplatila, tak by ve výsledku nic nemuselo být. A potom se vypisuje, což vidí jako problém.
Ten příklad je napsán procedurálně a to Javě moc nesedí. Správně by tam v daném případě
float premenna = 5;
nemělo být vůbec. Místo toho by bylo vhodnější přizpůsobit zbytek ukázkového programu tak, aby zmíněná definice hodnoty nebyla potřebná. Většinou není potřebná ani deklarace.
Napísať by som to nevedel, ale šlo by to takto?
Pridať do triedy private metódu.
Metóda by vlastne vykonávala toto:
System.out.printf("Výsledek: %f", vysledek);
Ten 'vysledek' by bol jej argumentom
Bola by volaná v každej vetve Switcha.
System.out.println("Neplatná voľba.")
Víc by se mi líbilo tohle řešení:
// ...
int volba = Integer.parseInt(sc.nextLine());
try {
System.out.printf("Výsledek: %f", vypocet(a, b, volba));
} catch (Exception e) {
System.err.println(e.getMessage());
}
System.out.println("Děkuji za použití kalkulačky.");
}
float vypocet(float a, float b, int volba) throws Exception {
switch (volba) {
case 1: return a + b;
case 2: return a - b;
case 3: return a * b;
case 4: return a / b;
}
throw new Exception("Neplatná volba");
}
EDIT: Koukám, že se ztrácí odsazení
No jasně, ale tohle je jeden z prvních tutoriálů, metody tady ještě
používat nemůžeš
@kit
A placol si mi sem kód, ktorému rozumiem tak na 30% Ale aj tak vďaka.
To je fajn, už ti zbývá jen 70 %
Chtěl jsi privátní metodu, ale bez použití výjimek by to bylo dost nešikovné.
Ak by som mohol niečo navrhnúť, nestalo by za uváženie pridanie tohto:
http://www.itnetwork.cz/…atch-finally
medzi základné tutoriály?
To slovo "private" jsem tam nějak zapomněl napsat. Podle mne je to kromě přehlednosti i řešení, které je optimální. Je tam redukován počet podmínek a odstraněny závislosti mezi nimi.
throws slouží k exportu výjimky mimo metodu. Je to vlastně druhý return s jiným typem návratové hodnoty, který se používá při vzniku chybových stavů.
return se používá při výstupu regulérního výsledku metody, throw při chybovém výstupu. Pokud je "volba" mimo interval 1-4, je to chyba vstupu a proto je výhodné použít výjimku (exception).
Je fakt, že výjimky mezi články o práci se soubory nepatří. Pro práci se soubory jsou však nezbytné. Souhlasím tedy s tím, že by výjimky měly být mezi základními tutoriály nebo by jim měla být vyčleněna samostatná kapitola.
Zobrazeno 16 zpráv z 16.