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

Parzystość liczby javascript liczby ujemne

Cloud VPS
0 głosów
1,939 wizyt
pytanie zadane 6 kwietnia 2016 w JavaScript przez Daniel Kudyba Obywatel (1,260 p.)
otagowane ponownie 6 kwietnia 2016 przez draghan

Serdecznie witam!

Piszę funkcję sprawdzającą parzystość liczb. Jaki dać warunek dla liczb ujemny?

Wpadłem na coś takiego 


function isEven (numer)
{
	if (numer == 0) return document.write('Liczba jest parzysta');
	if ((numer < 0) && (numer%(-2)==0)) return document.write("Liczba jest parzysta");
	else if (numer%2==0) return document.write("Liczba jest parzysta");
	else return document.write("Liczba jest niepatrzysa");
}
isEven(-56)



działać, działa tylko nie wiem czy nie wieje amatorszczyzną

2 odpowiedzi

+4 głosów
odpowiedź 6 kwietnia 2016 przez Comandeer Guru (607,100 p.)
wybrane 6 kwietnia 2016 przez draghan
 
Najlepsza

Kod jest ostro przekombinowany. Całą funkcję isEven można wyrazić JEDNĄ linijką: return number % 2 === 0;. Dodatkowo: funkcja ma zwracać swój wynik – nic więcej. Wyświetlanie informacji, że liczba jest/nie jest parzysta nie jest już działką funkcji sprawdzającej parzystość. Po tych zmianach dostajemy ostatecznie taki kod:

function isEven( number ) {
	return number % 2 === 0;
}

if ( isEven( -56 ) ) {
	document.write( 'Liczba jest parzysta' );
} else {
	document.write( 'Liczba nie jest parzysta' );
}

Oczywiście document.write nie powinno być używane, a zamiast tego lepiej zastosować element.innerHTML.

komentarz 6 kwietnia 2016 przez draghan VIP (106,230 p.)
edycja 6 kwietnia 2016 przez draghan

funkcja ma zwracać swój wynik – nic więcej. Wyświetlanie informacji, że liczba jest/nie jest parzysta nie jest już działką funkcji sprawdzającej parzystość.

O tym właśnie myślałem, kiedy pisałem że dziwnie wygląda zwracanie document.write. :)

Całą funkcję isEven można wyrazić JEDNĄ linijką

Ilość kodu nie jest wyznacznikiem jakości kodu. :) Ale popieram. Kod - zarówno autora wątku, jak i moją propozycję - można znacznie uprościć, co na złe nie wyjdzie. :)

1
komentarz 6 kwietnia 2016 przez Comandeer Guru (607,100 p.)

Ilość kodu nie jest wyznacznikiem jakości kodu. :)

No można to rozpisać na 30 linijek + 8 komentarzy… ale po co? Ani to nie poprawi czytelności, ani nie przyśpieszy kodu.

komentarz 6 kwietnia 2016 przez draghan VIP (106,230 p.)
Sądzę że Ty wiesz, jak pisać kod. Myślę że ja też mniej-więcej to czuję. ;)

Nie pisałem tego dla Ciebie ani dla siebie... Bardziej dla autora wątku i przyszłych młodych programistów, którzy tu zajrzą. :)
0 głosów
odpowiedź 6 kwietnia 2016 przez draghan VIP (106,230 p.)

Ja bym to logicznie poukładał trochę inaczej. W JS nigdy w życiu nie pisałem i trochę dziwnie mi wygląda "return document.write()", ale Ty pewnie wiesz, co napisałeś i dlaczego. :)

function isEven (number)
{
    if (number < 0) number = -number;

    if (number%2 == 0) return document.write("Liczba jest parzysta");
    else return document.write("Liczba jest niepatrzysa");
}

 

Podobne pytania

0 głosów
1 odpowiedź 594 wizyt
–1 głos
2 odpowiedzi 2,235 wizyt
pytanie zadane 2 stycznia 2017 w C i C++ przez Arkadiusz Sieczak Początkujący (400 p.)
0 głosów
1 odpowiedź 371 wizyt
pytanie zadane 29 sierpnia 2017 w JavaScript przez Karol Loczeski Użytkownik (820 p.)

93,485 zapytań

142,417 odpowiedzi

322,765 komentarzy

62,898 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

Kursy INF.02 i INF.03
...