• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak działa nawias w metodzie Return?

VPS Starter Arubacloud
0 głosów
416 wizyt
pytanie zadane 29 sierpnia 2019 w Java przez manager96 Bywalec (2,050 p.)

Cześć, napisałem prosty program, liczący zużycie paliwa i koszt podróży samochodem. Użyłem w nim metody return w której podałem wzory. Jednak wyniki są błędne gdy w drugim wzorze jest nawias. Bez nawiasu program działa bez zarzutu, dlaczego tak się dzieje?

int wzor() {
	return (int)(pojemnosc_baku/zuzycie_paliwa*100); // <- A TU JEST NAWIAS
}
	double ile_na_100km(int km) {
		return (double) km/100*zuzycie_paliwa;   //  <- DLACZEGO BEZ NAWIASU
	}

Z nawiasem wyniki wychodziły błędne (liczba całkowita i to jeszcze błędna o kilka wartości).

Proszę o objaśnienie mi tej zagwozdki :P 

2 odpowiedzi

+2 głosów
odpowiedź 29 sierpnia 2019 przez adrian17 Ekspert (344,100 p.)
wybrane 2 września 2019 przez manager96
 
Najlepsza

Zakładając że w Javie jest tak samo jak w C++ie:

return (double) km/100*zuzycie_paliwa;

Tutaj kolejność jest: ((double)km) / 100. Czyli km zamieniasz na double i dzielisz przez 100 -> ładny wynik.

return (double) (km/100*zuzycie_paliwa);

Tutaj kolejność jest (double)(km/100). Czyli dzielisz km przez 100 (dzielenie liczb całkowitych, na przykład 1/2 -> 0) i dopiero wynik zamieniasz na double.

0 głosów
odpowiedź 29 sierpnia 2019 przez jankustosz1 Nałogowiec (35,880 p.)
Zrozumiałem z wypowiedzi, że te dwie funkcje miały działać tak samo. Zakładam że zmienna km to to samo co pojemnosc_baku.

Po pierwsze w jednej funkcji operujesz na double'ach a w drugiej na int'ach.

Po drugie w pierwszej dzielisz przez zuzycie_paliwa a w drugiej przez 100.

Po trzecie masz błędny tytuł i skąd wogóle pomysł że nawias cokolwiek zmienia.
komentarz 29 sierpnia 2019 przez adrian17 Ekspert (344,100 p.)

Po trzecie masz błędny tytuł i skąd wogóle pomysł że nawias cokolwiek zmienia.

Bo jest początkujący i strzelił na ślepo - nic w tym złego. Gdyby wiedział, to by nie zadał pytania.

komentarz 29 sierpnia 2019 przez manager96 Bywalec (2,050 p.)

@jankustosz1, to jest przykład żywcem zerżnięty z książki dla początkujących javy. Te dwie funkcje nie robią tego samego, wzór jest troszkę inny. Ale gdy tą drugą funkcje (na doublach) otoczymy nawiasami jak powyżej funkcje na intach to wyniki będą błędne po kompilacji.

komentarz 29 sierpnia 2019 przez manager96 Bywalec (2,050 p.)

kąd wogóle pomysł że nawias cokolwiek zmienia.

No jak już mówiłem, jak jest nawias to wyniki są inne, jak go nie ma to wyniki są poprawne, dlaczego? 

Podobne pytania

0 głosów
1 odpowiedź 1,216 wizyt
pytanie zadane 22 kwietnia 2018 w C i C++ przez sztympel Nowicjusz (170 p.)
0 głosów
2 odpowiedzi 181 wizyt
0 głosów
2 odpowiedzi 860 wizyt
pytanie zadane 21 października 2017 w Java przez Kubs Mądrala (5,190 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...