Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Zdravím.Tento kod ma ověřit zda zadané číslo je kladné nebo záporné. Chtěl bych se zeptat, proč podmínka v hlavní metodě main se vždycky vyhodnotí true i když zadám záporné číslo. Dále bych se chtěl zeptat, proč v metodě zjisti() mi hlásí chybu "missing return statement, když mi tam návratová hodnota nechybí a chce ji tam napsat dvakrát. Děkuji.
Offline
Přesně tak, jako to druhé dej return false.
To je tedy odpovědí na tvou první otázku: Tvá metoda ti vrací true pro jakékoliv zadané číslo, proto se prvním podmínka v mainu vyhodnotí jako true.
K druhému dotazu: pokud máš v metodě ještě další bloky a v nich klidně return statementy, tak překladač vyžaduje ještě jeden return na konec - hezky to je vidět zrovna u tvé metody: první podmínka se týká pouze čísel větších než nula. Jak se pak ale navrátí rozhodnutí o těch, kteří se nedostanou do této podmínky? Return statementy musí obsáhnout všechny možnosti. Jinak to je např. s if-else, tam ti to obsáhne všechno, proto stačí return v jednotlivých blocích a nemusí být žádný na konci.
A ještě dotaz: proč v metodě používáš while a ne obyčejný if?
Offline
Zdravím,
budu mít několik dotazů a rad. ;-) Metoda načti nemusí mít parametr, rovnou ten objekt pro načtení čísla vytvoř v té metodě a nemusíš ani staticky, takže:
Scanner sc = new Scanner(System.in);
Proč je všechno statické? V metodě/funkci, která vrací bool musíme vrátit true, nebo false. Je tomu tak?
Příkaz
while (cislo > 0) { return true; }
se nám určitě zacyklí, proč tomu tak bude? A vůbec tady postrádám logiku samotné třídy, ale budiž.
Hodně štěstí.
Offline
↑ RePRO:
Fakt si myslis ze ak sa po prvom vykonani cyklu vyjde z funkcie, tak sa zacykli (bude volat zasa)?
↑ aferon:
Poriadne citaj. "Vracia to iste pre kladne aj nekladne cisla", nie "vracia kladne aj zaporne cisla".
Ono programovanie nefunguje tak ze napisem daco a ono to magicky bude robit co chcem. Treba chapat co robi to co je tam napisane, nie to co si predstavujem.
Offline
public static boolean zjisteni(int cislo){
return cislo > 0;
}
to by přeci stačilo?
Offline