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

Zadanie z javascript

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
7,645 wizyt
pytanie zadane 23 października 2016 w JavaScript przez godlo9888 Nowicjusz (210 p.)
zmienione kategorie 23 października 2016 przez HaKIM

Witam

Potrzebuje pomocy z zadaniem w którym muszę napisać program który będzie wczytywał liczbę całkowitą x i sprawdzał czy dana liczba jest dodatnia czy ujemna czy równa zero i zabezpieczyć żeby nie można było wpisać np. abcd itd. Mam problem bo sprawdza mi tylko czy jest dodania, a jak wpisze 0 lub liczbe na minusie to nie działa. Proszę o pomoc.

 
Muszę skorzystać z instrukcji switch. Zrobiłem narazie coś takiego:
 

<html>
<head>
</head>
<body>  

<script type="text/javascript">
var x = prompt ("podaj zmienna x:")
var b = 0;
switch (x > b) {
case x > b:
document.write("Liczba jest dodatnia");
break;
case x < b:
document.write("Liczba jest ujemna");
break;
case x == b:
document.write("Liczba jest równa 0");
break;
default:

document.write("zła liczba");

}
</script>  

</body>
</html>

 

komentarz 23 października 2016 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Proszę zapoznać się z FAQ oraz regulaminem tego forum.

Kod należy wstawić w specjalny bloczek, lub podać linka do "wklejki". Warto też, aby był on ładnie sformatowany - odpowiednie wcięcia zwiększają czytelność i nie odrzucają potencjalnego pomagającego.

Proszę też o zadbanie o poprawne otagowanie pytania - proszę nie umieszać tagów w stylu "pomocy", gdyż one na pewno nie ułatwią wyszukiwania pytania ;)

No i nie należy zapominać o poprawnych kategoriach. Javascript z pewnością nie zalicza się do kategorii C/C++.

3 odpowiedzi

+1 głos
odpowiedź 23 października 2016 przez Magicone Nałogowiec (45,100 p.)

Źle użyłeś instrukcji switch. Jeśli już chcesz z niej skorzystać, to wewnątrz nawiasów okrągłych po switch wpisujesz argument, który w odpowiednich case'ach obsługujesz. IMO lepszym rozwiązaniem i bardziej przejrzystym będą w tym wypadku trzy instrukcje warunkowe, co przedstawić można mniej więcej tak:

var x = prompt('Podaj zmienną x:');
var result = 'Liczba jest równa 0.';

if (isNaN(x)) result = 'Podana wartość nie jest liczbą.';
else if (x > 0) result = 'Liczba jest dodatnia.';
else if (x < 0) result = 'Liczba jest ujemna';

document.write(result);

Na początku przyjmujesz, że zmienna result jest po prostu wynikiem tego, co sobie rzucisz jako wynik. Inicjujesz jej wartość dla liczby równej zeru. Jeśli nastąpią przypadki takie jak: nieprawidłowy format liczby, albo klasyfikacja liczby jako dodatniej lub ujemnej to zmienisz wynik, który później wyrzucisz.

komentarz 23 października 2016 przez godlo9888 Nowicjusz (210 p.)
Też bym tak to zrobił, ale nauczycielka kazała to zrobić w switchu i dlatego mniej więcej założyłem ten temat. Pozdrawiam i dzieki za odpowiedź
komentarz 23 października 2016 przez godlo9888 Nowicjusz (210 p.)

Pomógłbyś mi coś z tym switchem, bo mam to na jutro a myślałem nad tym dzisiaj bo wydawało się proste sad

komentarz 23 października 2016 przez Magicone Nałogowiec (45,100 p.)
To powiedz, że jest to logicznie bez sensu, bo nie zakładasz wszystkich przypadków, tylko nierówność. Samej instrukcji switch nie widziałem już sporo czasu w kodzie bardziej zaawansowanym, który piszemy w pracy, bo zamiast niego wykorzystuje się mechanizm dziedziczenia z programowania obiektowego.
komentarz 23 października 2016 przez uRTLy Bywalec (2,420 p.)
Magicone ale co ma dziedziczenie do switcha ? Jak zastapiliscie switcha mechanizmem dziedziczenia z programowania obiektowego?

W JS akurat sie korzysta ze switcha  - redux. Co prawda nie w taki sposób ale korzysta.
komentarz 23 października 2016 przez godlo9888 Nowicjusz (210 p.)
To tego zadania nie da się zrobić z pomocą switcha?
komentarz 25 października 2016 przez Magicone Nałogowiec (45,100 p.)
godlo9888: da się, ale jak chcesz obsłużyć takie rzeczy jak wartość równa 0, czy taka, która nie jest liczbą to musisz albo sekwencyjnie się switchami bawić, co tylko spowoduje większy burdel.

uRTLy: ano ma, wywołujesz metody obiektów, które wykonują operacje zgodnie ze swoim przeznaczeniem, czy tam rzucają odpowiedni wynik. IMO czyściej wygląda taki bajer z pojedynczymi instrukcjami warunkowymi. A co do reduxa, to switch nie jest tam narzucany, masz zwrócić po prostu coś, co odpowiada argumentowi danemu na wejście.
+1 głos
odpowiedź 23 października 2016 przez xmentor Nałogowiec (49,520 p.)
edycja 23 października 2016 przez xmentor
Warunek zwraca true/false więc obsłuż true i false w instrukcji.
+1 głos
odpowiedź 23 października 2016 przez ShiroUmizake Nałogowiec (46,300 p.)

Do rozwiązania czy podany String zawiera abcd, jest sprawdzenie czy podane ciągu znaków jest stanie się utworzyć liczba.

function isNum  (inputValue){
if (Number.isNaN(inputValue))return true;
else return false;

}

 

komentarz 23 października 2016 przez Magicone Nałogowiec (45,100 p.)

Klasa Number nie ma metody isNum.

A jeśli chodzi o różnicę między Number.isNaN a window.isNaN.

Podobne pytania

+1 głos
1 odpowiedź 8,263 wizyt
pytanie zadane 1 lipca 2015 w JavaScript przez Mieszko I Stary wyjadacz (10,980 p.)
+1 głos
1 odpowiedź 202 wizyt
pytanie zadane 11 grudnia 2021 w JavaScript przez castor_fiber Użytkownik (800 p.)
0 głosów
2 odpowiedzi 1,046 wizyt
pytanie zadane 24 lutego 2018 w JavaScript przez patrykps Nowicjusz (140 p.)

93,113 zapytań

142,093 odpowiedzi

321,656 komentarzy

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...