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

Dlaczego pętla wykonuje się w nieskończonosć

+1 głos
111 wizyt
pytanie zadane 30 grudnia 2021 w JavaScript przez SlagEdit Początkujący (380 p.)
        var tak = 10
        var nie = 1
        while(nie<=tak){
            console.log("zgam")
        }

mam pętle która powinna 10 razy wypisać tak, ale ona wypisuje w nieskończonośći, ktoś wie moze dlaczego

2 odpowiedzi

+1 głos
odpowiedź 30 grudnia 2021 przez Pawel1995 Gaduła (3,160 p.)

Ale zapomniałeś zrobić:

tak--;

albo 

nie++;

Ten warunek jest wieczyście spełniany, dlatego to nieskończona pętla ;)

komentarz 30 grudnia 2021 przez SlagEdit Początkujący (380 p.)
Hmm, teraz działa, a wiesz może jak zrobić by było to wyświetla po każdym wykonaniu pętli a nie tylko po jej zakońćzeniu?
komentarz 30 grudnia 2021 przez Wiciorny Ekspert (218,330 p.)
no skoro warunek zachodzi x- razy to x razy zostaje coś wyświetlone, zatem wyświetlenie powinieneś mieć jeśli warunek nie jest spełniony i lub pętla się zakończy, ale wtedy pętla jest niepotrzebna.
1
komentarz 30 grudnia 2021 przez Pawel1995 Gaduła (3,160 p.)

Ale cały czas masz to wyświetlone 10 raz, tyle że jak masz 10 razy pod rząd i nie ma nic pomiędzy to konsola ci scala(zobacz cyfrę obok napisu w konsoli). Zobacz konsole jak zrobisz tak:

var tak = 10
var nie = 1
while(nie<=tak--){
    console.log("zgam2");
    console.log("zgam");
}

 

komentarz 30 grudnia 2021 przez Wiciorny Ekspert (218,330 p.)

smiechłem

var tak = 10
var nie = 1
while(++nie<=tak--){
    console.log("zgam");
}

prawie jak dzielenie przez dwa ^^

–1 głos
odpowiedź 31 grudnia 2021 przez VBService Mędrzec (162,810 p.)
edycja 1 stycznia przez VBService

Ale cały czas masz to wyświetlone 10 raz, tyle że jak masz 10 razy pod rząd i nie ma nic pomiędzy to konsola ci scala(zobacz cyfrę obok napisu w konsoli)

jeżeli z jakiegoś powodu chcesz uniknąć scalania tego samego tekstu przez konsolę, to np.:

var tak = 10
var nie = 1
while (nie <= tak--)
   (tak % 2 == 0) ? console.log("zgam") : console.info("zgam");

lub

var tak = 10, nie = 1, msg = "zgam\n", log = "";
while (nie <= tak--) log += msg;
console.log(log);

 

Podobne pytania

0 głosów
1 odpowiedź 58 wizyt
pytanie zadane 5 lipca 2020 w Python przez BezBarwny Użytkownik (700 p.)
+1 głos
8 odpowiedzi 930 wizyt
pytanie zadane 13 grudnia 2015 w C i C++ przez Mateep Użytkownik (850 p.)
0 głosów
1 odpowiedź 63 wizyt
pytanie zadane 12 maja 2016 w JavaScript przez ShiroUmizake Nałogowiec (46,390 p.)

87,903 zapytań

136,489 odpowiedzi

304,301 komentarzy

58,284 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...