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

question-closed błąd w kodzie

Object Storage Arubacloud
0 głosów
145 wizyt
pytanie zadane 23 czerwca 2017 w JavaScript przez Emil Szerafin Nowicjusz (170 p.)
zamknięte 23 czerwca 2017 przez Emil Szerafin

Napisałem program i znalazłem problem z niekończącą się pętlą (błędny fragment umieściłem poniżej) i nie wiem, gdzie jest błąd. Proszę o pomoc w zrozumieniu mojego błędu. (dopiero zaczynam programować więc proszę o wyrozumiałość)

var a = "aaa";
var b = "bbb";
var ab;
var c = 0;
for (var d = 0; c < 1; d++) {
	ab += a.slice(d,d+1);
	ab += b.slice(d+1,d+2);
	if (ab.length === a.length + b.length) {
		c++
	}; 
	d++
};

To jest uproszczona wersja kodu, którego zadaniem jest, to aby zmienna "ab" była równa "ababab" (w moim programie długość "a" i "b" jest zmienna)

komentarz zamknięcia: ProgramistaStepek pomógł w rozwiązaniu problemu
komentarz 23 czerwca 2017 przez kubaapk Nałogowiec (44,270 p.)
Jaki jest warunek skończenia pętli?
komentarz 23 czerwca 2017 przez Emil Szerafin Nowicjusz (170 p.)
Mój tok rozumowania (popraw mniej w miejscu w którym się mylę):

jeżeli ab.length  ===  a.length + b.length,  wtedy c === 1, a jeżeli c nie będzie mniejsze od 1 to pętla się zamyka.
komentarz 23 czerwca 2017 przez X3h Dyskutant (9,540 p.)
Rozpisz spodziewane wyniki. Spróbuj użyć console.log()

2 odpowiedzi

+1 głos
odpowiedź 23 czerwca 2017 przez ProgramistaStepek Nałogowiec (27,020 p.)
wybrane 23 czerwca 2017 przez Emil Szerafin
 
Najlepsza

Twój problem leży trochę głębiej. Nie zainicjalizowałeś (tak wiem, trudne słowo) zmiennej ab, czyli w skrócie nie nadałeś jej początkowej wartości dlatego silnik js nadał jej wartość undefined, a każde dodawanie do undefined da w wyniku undefined.

Rozwiązaniem twojego problemu będzie linijka.

var ab = null;

 

komentarz 23 czerwca 2017 przez Emil Szerafin Nowicjusz (170 p.)

Dzięki za pomoc, faktycznie na tym polegał mój problem tyle, że wynikiem było "nullab" więc wpisałem po prostu:

var ab = "";

 

–1 głos
odpowiedź 23 czerwca 2017 przez MDXTR Nowicjusz (140 p.)

Na początek proponuję poprawić fragment:

if (ab.length === a.length + b.length)

na

if (ab.length == a.length + b.length)

i przetestować wtedy kod jeszcze raz. Operator porównania to 2 znaki "="

komentarz 23 czerwca 2017 przez Emil Szerafin Nowicjusz (170 p.)
Nic to nie zmieniło. Poza tym to chyba nie ma znaczenia, bo przecież obie wartości są numerami.

Podobne pytania

0 głosów
1 odpowiedź 283 wizyt
pytanie zadane 21 maja 2020 w JavaScript przez Dark Web Nowicjusz (190 p.)
0 głosów
2 odpowiedzi 239 wizyt
pytanie zadane 14 stycznia 2020 w JavaScript przez Flyfor Nowicjusz (160 p.)
0 głosów
1 odpowiedź 461 wizyt
pytanie zadane 18 grudnia 2018 w JavaScript przez Jaroslaw Roj Obywatel (1,990 p.)

92,551 zapytań

141,399 odpowiedzi

319,529 komentarzy

61,937 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!

...