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

JavaScript - pętle zagnieżdżone

0 głosów
2,608 wizyt
pytanie zadane 22 stycznia 2017 w JavaScript, jQuery, AJAX przez svyatogor92 Użytkownik (660 p.)

Witam,

Zupełnie nie rozumiem działania pętli zagnieżdżonych, a stoję przed konkretnym zadaniem, którego nie potrafię ruszyć.

Polecenie:

W pliku script.js napisz program rysujący na podstawie wartości zmiennej **n** następujący schemat (tutaj dla ```n = 5```). Użyj do tego  pętli zagnieżdżonych.

```
*
* *
* * *
* * * *
* * * * *
```

Możesz to zadanie rozwiązać na dwa sposoby:
1. używając pętli zależnych.
2. używając pętli niezależnych i instrukcji warunkowej **if**.

*Wzoruj się na zadaniu poprzednim. Trzeba tutaj trochę pomyśleć i rozumieć pętle zagnieżdżone.*



Zadanie poprzednie/przykład:

/*
 Pętla zewnętrzna z licznikiem o zmiennej ```i``` zajmuje się
wierszami, a pętla wewnętrzna z licznikiem o zmiennej ```j``` zajmuje się kolumnami.
Zaczynamy od lewej górnej gwiazdki i przemieszczamy się w prawo będąc w pierwszym wierszu.
Kiedy pętla wewnętrzna dojdzie do ostatniej kolumny, kończy działanie. Wtedy pętla zewnętrzna
zwiększa licznik o 1 (przechodzi do kolejnego wiersza) i tak dalej.
*/

//Zmienna, przechowująca wielkość naszego kwadratu
var size = 5;

//Zmienna przechowująca jedną linię gwiazdek
var lineOfStars = "";

for(var i = 0; i < size; i++) {
    // W każdym kroku muszę zresetować zmienną, ponieważ zaczcynam tworzenie nowej linii
    lineOfStars = "";
    for(var j = 0; j < size; j++) {
        //Do zmiennej lineOfStars dodaje gwiazdkę
        lineOfStars = lineOfStars + "*";
    }
    // Oddzielam kazdą linię, pustym wierszem, ponieważ przeglądarka widząc 5 takich samych
    //wyników zwinie nasz kwadrat z gwiazdek do jednej linijki
    console.log(" ");

    //Wypisuje w konsoli zmienną lineOfStars (jej zawartość - dlatego jest bez cudzysłosów)
    console.log(lineOfStars);
}


```
* * * * *

* * * * *

* * * * *

* * * * *

* * * * *
```

 

 

Moglibyście mi to wytłumaczyć?

2 odpowiedzi

+1 głos
odpowiedź 22 stycznia 2017 przez Czort Nałogowiec (32,780 p.)
Jedna pętla wystarczy, trochę skomplikowałeś to zadanie.
komentarz 22 stycznia 2017 przez svyatogor92 Użytkownik (660 p.)
Nie, nie- w takiej formie dostałem to zadanie od wykładowcy, ten przykład to właśnie jego dzieło.
komentarz 22 stycznia 2017 przez Czort Nałogowiec (32,780 p.)

Jeśli ma się rysować to co w zadaniu to wystarczy:

var size = 5;

var lineOfStars = "";
 
for(var j = 0; j < size; j++) {
    lineOfStars = lineOfStars + "*";
    console.log(" ");
    console.log(lineOfStars);
}

Nie bardzo rozumiem sensu dwóch pętli.

komentarz 22 stycznia 2017 przez svyatogor92 Użytkownik (660 p.)
Kurcze faktycznie!

Mógłbyś także wytłumaczyć po krótce co tu zaszło? :)

Dziękuję uprzejmie! :)
komentarz 22 stycznia 2017 przez Czort Nałogowiec (32,780 p.)
5 iteracji pętli, w każdej dodaje się jedna gwiazdka i drukuje wynik.
komentarz 22 stycznia 2017 przez svyatogor92 Użytkownik (660 p.)
A gdzie jest zapisane to 5 iteracji pętli, w którym miejscu?
komentarz 22 stycznia 2017 przez Czort Nałogowiec (32,780 p.)
var j = 0; j < size; j++

Instrukcja wykonuje się pierwszy raz j zwiększa się o 1, drugi raz - j znowu zwiększa się o 1, itd. 5 razy i pętla kończy działanie bo nie zostaje spełniony warunek j < size.
komentarz 22 stycznia 2017 przez svyatogor92 Użytkownik (660 p.)
Ach wszystko jasne! Bardzo dziękuję :)
komentarz 22 stycznia 2017 przez svyatogor92 Użytkownik (660 p.)
Dostałem informację od wykładowcy, że to zadanie musi zostać wykonane przy pomocy pętli zagnieżdżonych, czy mógłbym prosić o pomoc w rozwiązaniu w ten sposób?
+1 głos
odpowiedź 22 stycznia 2017 przez Shaoi Mądrala (6,940 p.)
edycja 22 stycznia 2017 przez Shaoi
var size_x = 5;
var size_y = 1;
var msg = "";
    
    
for(var i=0; i < size_y; i++) {
    for(var j = 0; j < size_x; j++) {
        msg += "* ";
        console.log(msg);
    }
}

 

Podobne pytania

0 głosów
1 odpowiedź 92 wizyt
pytanie zadane 24 czerwca w C i C++ przez magda_19 Obywatel (1,730 p.)
0 głosów
2 odpowiedzi 287 wizyt
pytanie zadane 5 lutego 2017 w C i C++ przez ofnero Użytkownik (830 p.)
0 głosów
0 odpowiedzi 127 wizyt
pytanie zadane 20 września 2016 w C i C++ przez plkpiotr Stary wyjadacz (12,420 p.)
Porady nie od parady
Zadając pytanie postaraj się o poprawną pisownię i czytelne formatowanie tekstu.Kompozycja

66,984 zapytań

113,890 odpowiedzi

241,331 komentarzy

46,940 pasjonatów

Przeglądających: 231
Pasjonatów: 13 Gości: 218

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.

...