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

[JavaScript] Kod raz działa poprawnie a raz nie

0 głosów
539 wizyt
pytanie zadane 1 września 2015 w JavaScript przez CPP_Newbie Użytkownik (770 p.)

Witam,

Zrobiłem swoją wersję kodu z kursu P. Mirka o JS odc. 2. Kod działa prawidłowo, tzn. jeśli dwie liczby to wyświetla mi je rosnąco lub malejąco w divie. Problem pojawia się, gdy mam już wprowadzone dwie liczby, wyświetle wynik, dokonam ich modyfikacji i wówczas raz wypisuje się zakres liczb a raz tylko jedna pojedyncza liczba. Dlaczego tak się dzieje?

function sprawdz()
		{
			var liczba1 = document.getElementById("pole1").value;
			var liczba2 = document.getElementById("pole2").value;
			var wynik = "";
			var NaN = "Nie wprowadzono liczb!";
			var equal = "Liczby są takie same";
			
			
			if(liczba1 < liczba2)
			{
				for(i=liczba1; i<=liczba2; i++)
				{
					wynik += i + " ";
				}
				document.getElementById("wynik").innerHTML = wynik;
			}
			else if(liczba1 > liczba2)
			{
				for(i=liczba1; i>=liczba2; i--)
				{
					wynik += i + " ";
				}
				document.getElementById("wynik").innerHTML = wynik;
			}
			else document.getElementById("wynik").innerHTML = equal;
		}

 

3 odpowiedzi

0 głosów
odpowiedź 1 września 2015 przez Dawid Sobieszczuk Mądrala (6,240 p.)
wybrane 1 września 2015 przez CPP_Newbie
 
Najlepsza
function sprawdz()
{
	var liczba1 = Number(document.getElementById("pole1").value);
	var liczba2 = Number(document.getElementById("pole2").value);
	var wynik = "";
	var NaN = "Nie wprowadzono liczb!";
	var equal = "Liczby są takie same";
	 
	 
	if(liczba1 < liczba2)
	{
		for(i=liczba1; i<=liczba2; i++)
		{
			wynik += i + " ";
		}
		document.getElementById("wynik").innerHTML = wynik;
	}
	else if(parseInt(liczba1) > parseInt(liczba2))
	{
		for(i=liczba1; i>=liczba2; i--)
		{
			wynik += i + " ";
		}
		document.getElementById("wynik").innerHTML = wynik;
	}
	else document.getElementById("wynik").innerHTML = equal;
}

Sprawdź to. Ja miałem problem jak brałem liczby 2-9 i 10+.

komentarz 1 września 2015 przez CPP_Newbie Użytkownik (770 p.)

Teraz działa za każdym razem. Dzięki! smiley

Czyli rozumiem, że najpierw, przed pobraniem wartości z htmla, trzeba przy użyciu obiektu "Number" dokonać konwersji danych na wartości liczbowe i dopiero później te zmienne porównywać?

BTW. W pętli else if nie jest potrzebne już rzutowanie przy użyciu "parseInt()" ;)

komentarz 1 września 2015 przez Dawid Sobieszczuk Mądrala (6,240 p.)

Jak porównywałem bez Number to "2" było wieksze od "10". 

Testowałam różne rzeczy i zapomniałem usunąć parseIntlaugh

0 głosów
odpowiedź 1 września 2015 przez Ivan Maniak (60,650 p.)
sprawdz(document.getElementById("pole1").value, document.getElementById("pole2").value);
function sprawdz(liczba1, liczba2)
        {
            var wynik = "";
            var NaN = "Nie wprowadzono liczb!";
            var equal = "Liczby są takie same";
             
             
            if(liczba1 < liczba2)
            {
                for(i=liczba1; i<=liczba2; i++)
                {
                    wynik += i + " ";
                }
                document.getElementById("wynik").innerHTML = wynik;
            }
            else if(liczba1 > liczba2)
            {
                for(i=liczba1; i>=liczba2; i--)
                {
                    wynik += i + " ";
                }
                document.getElementById("wynik").innerHTML = wynik;
            }
            else document.getElementById("wynik").innerHTML = equal;
        }

Spróbuj tak.

komentarz 1 września 2015 przez CPP_Newbie Użytkownik (770 p.)
W ogóle nie działa, przechodzi od razu do ostatniego elsa.

Ktoś? Coś?
0 głosów
odpowiedź 1 września 2015 przez magdalenka120 Obywatel (1,520 p.)
Debugowałeś krok po kroku? Wyskakuje jakiś błąd w konsoli?

Podobne pytania

+1 głos
3 odpowiedzi 711 wizyt
pytanie zadane 10 listopada 2022 w Python przez niezalogowany
0 głosów
1 odpowiedź 982 wizyt
0 głosów
2 odpowiedzi 761 wizyt
pytanie zadane 23 sierpnia 2015 w C i C++ przez Slasheruus Nowicjusz (170 p.)

93,720 zapytań

142,641 odpowiedzi

323,265 komentarzy

63,269 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...