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

Parzystość liczby javascript liczby ujemne

Object Storage Arubacloud
0 głosów
1,726 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 (601,930 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 (601,930 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ź 512 wizyt
–1 głos
2 odpowiedzi 1,858 wizyt
pytanie zadane 2 stycznia 2017 w C i C++ przez Arkadiusz Sieczak Początkujący (400 p.)
0 głosów
1 odpowiedź 256 wizyt
pytanie zadane 29 sierpnia 2017 w JavaScript przez Karol Loczeski Użytkownik (820 p.)

92,617 zapytań

141,466 odpowiedzi

319,783 komentarzy

61,999 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...