• 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

VPS Starter Arubacloud
0 głosów
7,743 wizyt
pytanie zadane 22 stycznia 2017 w JavaScript przez svyatogor92 Użytkownik (670 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

+2 głosów
odpowiedź 22 stycznia 2017 przez Shaoi Mądrala (7,020 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);
    }
}

 

+1 głos
odpowiedź 22 stycznia 2017 przez Czort Nałogowiec (32,500 p.)
Jedna pętla wystarczy, trochę skomplikowałeś to zadanie.
komentarz 22 stycznia 2017 przez svyatogor92 Użytkownik (670 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,500 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 (670 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,500 p.)
5 iteracji pętli, w każdej dodaje się jedna gwiazdka i drukuje wynik.
komentarz 22 stycznia 2017 przez svyatogor92 Użytkownik (670 p.)
A gdzie jest zapisane to 5 iteracji pętli, w którym miejscu?
komentarz 22 stycznia 2017 przez Czort Nałogowiec (32,500 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 (670 p.)
Ach wszystko jasne! Bardzo dziękuję :)
komentarz 22 stycznia 2017 przez svyatogor92 Użytkownik (670 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?

Podobne pytania

+1 głos
2 odpowiedzi 916 wizyt
pytanie zadane 22 stycznia 2021 w C i C++ przez Karson Obywatel (1,000 p.)
0 głosów
3 odpowiedzi 991 wizyt
pytanie zadane 2 maja 2020 w Python przez lenzo1 Początkujący (360 p.)
0 głosów
1 odpowiedź 707 wizyt
pytanie zadane 24 czerwca 2019 w C i C++ przez magda_19 Gaduła (3,080 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...