-
ძვირფასი ქვა, ნამდვილი ძვირფასი ქვა!
-
მაგრამ იცით, რომ ერთ ძვირფას ქვაზე
უკეთესი, ძვირფასი ქვების მთელი მწკრივია.
-
რათქმაუნდა, ჩვენ უკვე
ვიცით, რომ ძვირფასი ქვების მწკრივის
-
გასაკეთებლად საუკეთსო გზა არის loop-ი.
-
მოდით for loop-ის მეშვეობით
დავხატოთ 12 ძვირფასი ქვა მწკრივში.
-
მარცხნიდან ეკრანის სიგანეზე.
-
აი ასე. ანუ ეს არის
-
for ( var i უდრის 0;
i ნაკლებია 12-ზე; i პლუს პლუსი)
-
და შემდეგ ავიღებთ
ამ ხაზს და გადავაადგილებთ შიგნით აქ.
-
ეხლა ჩვენ გვაქვს 12 ძვირფასი
ქვა, მაგრამ ყველა მოგროვებულია
-
მარჯვენა მხარეს ერმთანეთზე.
-
გახსოვთ, ჩვენ გვინდა
რომ ეკრანის გასვწრივ იყოს.
-
ეს ნიშნავს რომ, გვინდა შევცვალოთ x.
-
ეხლა 36 არის x, მაგრამ ჩვენ
გვინდა, რომ იყოს განსხვავებუი ყოველ ჯერზე.
-
ეს ნიშნავს რომ, ჩვენ
გვინდა რომ იყოს დამოკიდებული i-ზე.
-
ჩვენ შეგვიძლია მარტივად
დავწეროთ, i გამრავლებული 36-ზე.
-
პირველი არის 0-ზე,
შემდეგ 36-ზე, შემდეგ 72-ზე და ა.შ.
-
კარგია! ახლა გვაქვს
ძვირფასი ქვების მწკრივი.
-
ეს მახსენებს იმ სცენებს
"ინდიანა ჯონსში" ან "ალადინში",
-
სადაც მთავარი გმირი მიწისქვეშ
აღმოაჩენს ძვირფასი ქვების საუნჯეს,
-
მაგრამ ზოგადად ისინი ამაზე
გაცილებით მეტ ძვირფას ქვას პოულობენ ხოლმე.
-
ძვირფასი ქვების მწკრივს
კი არა, უამრავ ძვირფას ქვას!
-
როგორ შეგვიძლია ეს ჩვენი
ძვირფასი ქვებიც გავაკეთოთ ისე, რომ
-
ჩადიოდეს ბოლომდე მთელ ეკრანზე.
-
ჩვენ შეგვიძლია დავიწყოთ
for loop-ის გამეორებით და კოპირება-ჩასმით,
-
და შემდეგ ამ y-ის ყოველ
ჯერზე შეცვლით. და ამიტომ,
-
ჩვენ შევცვლით 60-ით და შემდეგ 90-ით.
-
ეხლა გვაქვს ძვირფასი
ქვების სამი მწკრივი და მაგარია.
-
მაგრამ ეს ცოტა მოსაწყენი
ხდება, რადგან რასაც ვაკეთებთ არის,
-
კოპირება, ჩასმა და
ცვლილება ამ პატარა რაღაცის.
-
ძირითადად წარსულში, როცა
ვწერდით განმეორებით კოდს როგორიც ეს,
-
ვიფიქრებდით "იქნებ loop-ი
ხომ არ გამოგვეყენებინა ამის მაგივრად"
-
მაგრამ ჩვენ უკვე ვიყენებთ loop-ს.
-
რა არის ამის გადაწყვეტა,
რომ თავიდან ავიცილოთ ამის დაწერა,
-
ანუ განმეორებითი კოპირება-ჩასმის წერა?
-
ეს არის რაღაც, რასაც ვეძახით
"nested for loops". loop-ი loop-ის შიგნით.
-
ჩვენ გავაკეთებთ გარე loop-ს,
-
და ეს მიხედავს ეკრანზე ქვევით ჩასვლას,
-
და შემდეგ ჩვენი შიდა
loop-ი მიხედავს იმას რასაც აკეთებს ეხლა,
-
რაც არის მარცხნიდან მარჯვნივ წასვლა.
-
მოდით განახებთ რას ვგულისხმობ.
-
for - და ვიყენებ განხვავებული
ცვლადს ამჯერად, სახელად j,
-
რადგან ჩვენ უკვე ვიყენებთ i-ს,
-
ანუ for(var j უდრის 0;
j ნაკლებია 13; j პლუს პლუსი).
-
კარგით, ეს იქნება ჩვენი გარე loop-ი,
ზევიდან ქვევით ჩასვლაზე პასუხისმგებელი.
-
შემდეგ ჩვენ უბრალოდ ავიღებთ
წინა for loop-ს და ჩავსვათ იქ შიგნით,
-
შევასწორებთ აბზაცს,
და წავშლით ამ ძველებს. კარგით.
-
ეხლა ჩვენ გვაქვს ყველა
ერთმანეთზე დაწყობილი, ერთ მწკრივში.
-
ანუ ჩვენ უნდა შევცვალოთ y, ხომ?
-
ჩვენ ამას ვაკეთებდით მანამდე,
როცა ჩვენ ვაკოპირებდით და ვსვავდით და
-
ეხლა, y ყოველთვის 90-ია.
-
ჩვენ გვინდა, რომ y
იცვლებოდეს ყოველ მწკრივზე.
-
როგორც y დამოკიდებულია i-ზე, ჩვენ
გვინდა, რომ y დამოკიდებული იყოს j-ზე.
-
შეგვიძლია ეს შევცვალოთ
როგორც... შეიძლება, j გამრავლებული 30-ზე.
-
არის! უმრავი ძვირფასი ქვა. კარგია!
-
მოდით თავიდან
განვიხილოთ ეს რას აკეთებს.
-
გარე loop-ი ქმნის ამ
ცვლად j-ს და ზრდის 13-მდე.
-
და ყველა ამ გარე loop-ის
შესრულებაზე, ამ შიდა loop-ს უშვებს.
-
შიდა loop-ი ქმნის
ცვლად i-ს, რომელიც ადის 12-მდე.
-
და ყოველ შიდა loop-ის
შესრულებაზე, ხატავს სურათს x და y-ზე,
-
რომელიც დამოკიდებულია i და j-ზე.
-
ამიტომ ეს i იცვლება უფრო ხშირად ვიდრე j.
-
იმისთვის რომ გავიგოთ ეს უკეთესად,
მოდით წარმოვიდგინოთ i და y ცვლადები.
-
დავწერ სურათს კომენტარის სახით,
-
დავაყენებ შევსების ფერს,
-
და გამოვიყენებთ text ბრაძანებას,
რომ გამოვაჩინო j ცვლადი, ანუ text j
-
და შემდეგ ჩავსვავ შესაბამაის ადგილზე აქ.
-
ეხლა ჩვენ ვხედავთ,
რომ j მიდის 0-დან 12-მდე.
-
აქ იყო ჩვენი ძვირფასი ქვები განლაგებული.
-
მოდით ეხლა წარმოვიდგინოთ
i და ვნახოთ როგორ იცვლება.
-
მოდით გავაკეთოთ სხვა ფერი i ცვალდისთვის.
-
შემდეგ ჩავსვათ i სადმე.
-
შევცვალოთ მისი x,
რომ განლაგდეს ეკრანზე, გასწვრივ.
-
იგივეს გავაკეთებთ y ცვლადისთვის.
-
ეხლა შეგვიძლია ვთქვათ,
რომ i იზრდება 0-დან 11-მდე.
-
როგორც ვიძახდი,
i იცვლება ბევრად უფრო ხშირად,
-
და კოდის ეს ხაზი უფრო
ხშირად სრულდება, ვიდრე ეს ხაზი,
-
იმიტომ რომ კოდის ეს ხაზი სრულდება,
შიდა for loop-ის ყოველ შესრულებაზე.
-
მაშინ როდესაც ეს კოდი,
სრულდება გარე loop-ის ყოველ შესრულებაზე.
-
იმედია i და j ცვალდების წარმოდგენა,
-
გეხმარებათ უკეთ გაიგოთ
რა ხდება ამ nested for loop-ებში.
-
ეხლა მოდით დავაბრუნოთ
ჩვენი ძვირფასი ქვები, რადგან უფრო მაგარია!
-
ამ nested for loop-ებით
ბევრი რამის გაკეთება შეგიძლიათ.
-
თუ უბრალოდ
წარმოიდგენთ ყველაფერს სამყაროში, რაც
-
გამოიყურება როგორც ორ განზომილებიანი
ბადე, მაგალითად ჭადრაკის დაფა,
-
ვარსკვლავები ამერიკის
დროშაზე, ლამაზი მოხატულობა ან შპალერი.
-
ჩართეთ თქვენი
წარმოსახვა და ითამაშეთ ამ კოდით,
-
მაგალითად სურათის შეცვლით.
-
მე შევცვლი გულით.
-
რომ განახოთ როგორ
მიყვარს nest for loop-ები.