WEBVTT 00:00:01.686 --> 00:00:04.237 ძვირფასი ქვა, ნამდვილი ძვირფასი ქვა! 00:00:04.237 --> 00:00:08.175 მაგრამ იცით, რომ ერთ ძვირფას ქვაზე უკეთესი, ძვირფასი ქვების მთელი მწკრივია. 00:00:08.175 --> 00:00:09.562 რათქმაუნდა, ჩვენ უკვე ვიცით, რომ ძვირფასი ქვების მწკრივის 00:00:09.562 --> 00:00:12.562 გასაკეთებლად საუკეთსო გზა არის loop-ი. 00:00:12.562 --> 00:00:16.162 მოდით for loop-ის მეშვეობით დავხატოთ 12 ძვირფასი ქვა მწკრივში. 00:00:16.162 --> 00:00:19.523 მარცხნიდან ეკრანის სიგანეზე. 00:00:19.523 --> 00:00:22.304 აი ასე. ანუ ეს არის 00:00:22.304 --> 00:00:31.106 for ( var i უდრის 0; i ნაკლებია 12-ზე; i პლუს პლუსი) 00:00:31.106 --> 00:00:36.079 და შემდეგ ავიღებთ ამ ხაზს და გადავაადგილებთ შიგნით აქ. 00:00:36.079 --> 00:00:37.429 ეხლა ჩვენ გვაქვს 12 ძვირფასი ქვა, მაგრამ ყველა მოგროვებულია 00:00:37.429 --> 00:00:40.305 მარჯვენა მხარეს ერმთანეთზე. 00:00:40.305 --> 00:00:43.401 გახსოვთ, ჩვენ გვინდა რომ ეკრანის გასვწრივ იყოს. 00:00:43.401 --> 00:00:45.941 ეს ნიშნავს რომ, გვინდა შევცვალოთ x. 00:00:45.941 --> 00:00:49.454 ეხლა 36 არის x, მაგრამ ჩვენ გვინდა, რომ იყოს განსხვავებუი ყოველ ჯერზე. 00:00:49.454 --> 00:00:51.859 ეს ნიშნავს რომ, ჩვენ გვინდა რომ იყოს დამოკიდებული i-ზე. 00:00:51.859 --> 00:00:56.329 ჩვენ შეგვიძლია მარტივად დავწეროთ, i გამრავლებული 36-ზე. 00:00:56.329 --> 00:01:02.687 პირველი არის 0-ზე, შემდეგ 36-ზე, შემდეგ 72-ზე და ა.შ. 00:01:02.687 --> 00:01:04.575 კარგია! ახლა გვაქვს ძვირფასი ქვების მწკრივი. 00:01:04.575 --> 00:01:07.997 ეს მახსენებს იმ სცენებს "ინდიანა ჯონსში" ან "ალადინში", 00:01:07.997 --> 00:01:11.306 სადაც მთავარი გმირი მიწისქვეშ აღმოაჩენს ძვირფასი ქვების საუნჯეს, 00:01:11.306 --> 00:01:13.732 მაგრამ ზოგადად ისინი ამაზე გაცილებით მეტ ძვირფას ქვას პოულობენ ხოლმე. 00:01:13.732 --> 00:01:17.306 ძვირფასი ქვების მწკრივს კი არა, უამრავ ძვირფას ქვას! 00:01:17.306 --> 00:01:21.609 როგორ შეგვიძლია ეს ჩვენი ძვირფასი ქვებიც გავაკეთოთ ისე, რომ 00:01:21.609 --> 00:01:24.806 ჩადიოდეს ბოლომდე მთელ ეკრანზე. 00:01:24.806 --> 00:01:30.639 ჩვენ შეგვიძლია დავიწყოთ for loop-ის გამეორებით და კოპირება-ჩასმით, 00:01:30.639 --> 00:01:34.565 და შემდეგ ამ y-ის ყოველ ჯერზე შეცვლით. და ამიტომ, 00:01:34.565 --> 00:01:37.688 ჩვენ შევცვლით 60-ით და შემდეგ 90-ით. 00:01:37.688 --> 00:01:42.308 ეხლა გვაქვს ძვირფასი ქვების სამი მწკრივი და მაგარია. 00:01:42.308 --> 00:01:45.495 მაგრამ ეს ცოტა მოსაწყენი ხდება, რადგან რასაც ვაკეთებთ არის, 00:01:45.495 --> 00:01:49.193 კოპირება, ჩასმა და ცვლილება ამ პატარა რაღაცის. 00:01:49.193 --> 00:01:52.859 ძირითადად წარსულში, როცა ვწერდით განმეორებით კოდს როგორიც ეს, 00:01:52.859 --> 00:01:57.025 ვიფიქრებდით "იქნებ loop-ი ხომ არ გამოგვეყენებინა ამის მაგივრად" 00:01:57.025 --> 00:01:58.607 მაგრამ ჩვენ უკვე ვიყენებთ loop-ს. 00:01:58.607 --> 00:02:00.854 რა არის ამის გადაწყვეტა, რომ თავიდან ავიცილოთ ამის დაწერა, 00:02:00.854 --> 00:02:03.854 ანუ განმეორებითი კოპირება-ჩასმის წერა? 00:02:03.854 --> 00:02:09.378 ეს არის რაღაც, რასაც ვეძახით "nested for loops". loop-ი loop-ის შიგნით. 00:02:09.378 --> 00:02:12.132 ჩვენ გავაკეთებთ გარე loop-ს, 00:02:12.132 --> 00:02:14.851 და ეს მიხედავს ეკრანზე ქვევით ჩასვლას, 00:02:14.851 --> 00:02:19.234 და შემდეგ ჩვენი შიდა loop-ი მიხედავს იმას რასაც აკეთებს ეხლა, 00:02:19.234 --> 00:02:21.977 რაც არის მარცხნიდან მარჯვნივ წასვლა. 00:02:21.977 --> 00:02:24.007 მოდით განახებთ რას ვგულისხმობ. 00:02:24.007 --> 00:02:26.851 for - და ვიყენებ განხვავებული ცვლადს ამჯერად, სახელად j, 00:02:26.851 --> 00:02:29.851 რადგან ჩვენ უკვე ვიყენებთ i-ს, 00:02:29.851 --> 00:02:37.274 ანუ for(var j უდრის 0; j ნაკლებია 13; j პლუს პლუსი). 00:02:37.274 --> 00:02:41.999 კარგით, ეს იქნება ჩვენი გარე loop-ი, ზევიდან ქვევით ჩასვლაზე პასუხისმგებელი. 00:02:41.999 --> 00:02:48.237 შემდეგ ჩვენ უბრალოდ ავიღებთ წინა for loop-ს და ჩავსვათ იქ შიგნით, 00:02:48.237 --> 00:02:53.284 შევასწორებთ აბზაცს, და წავშლით ამ ძველებს. კარგით. 00:02:53.284 --> 00:02:59.079 ეხლა ჩვენ გვაქვს ყველა ერთმანეთზე დაწყობილი, ერთ მწკრივში. 00:02:59.079 --> 00:03:01.969 ანუ ჩვენ უნდა შევცვალოთ y, ხომ? 00:03:01.969 --> 00:03:04.309 ჩვენ ამას ვაკეთებდით მანამდე, როცა ჩვენ ვაკოპირებდით და ვსვავდით და 00:03:04.309 --> 00:03:06.108 ეხლა, y ყოველთვის 90-ია. 00:03:06.108 --> 00:03:09.440 ჩვენ გვინდა, რომ y იცვლებოდეს ყოველ მწკრივზე. 00:03:09.440 --> 00:03:16.188 როგორც y დამოკიდებულია i-ზე, ჩვენ გვინდა, რომ y დამოკიდებული იყოს j-ზე. 00:03:16.188 --> 00:03:24.663 შეგვიძლია ეს შევცვალოთ როგორც... შეიძლება, j გამრავლებული 30-ზე. 00:03:24.663 --> 00:03:29.934 არის! უმრავი ძვირფასი ქვა. კარგია! 00:03:29.934 --> 00:03:31.776 მოდით თავიდან განვიხილოთ ეს რას აკეთებს. 00:03:31.776 --> 00:03:38.070 გარე loop-ი ქმნის ამ ცვლად j-ს და ზრდის 13-მდე. 00:03:38.070 --> 00:03:44.340 და ყველა ამ გარე loop-ის შესრულებაზე, ამ შიდა loop-ს უშვებს. 00:03:44.340 --> 00:03:48.443 შიდა loop-ი ქმნის ცვლად i-ს, რომელიც ადის 12-მდე. 00:03:48.443 --> 00:03:52.358 და ყოველ შიდა loop-ის შესრულებაზე, ხატავს სურათს x და y-ზე, 00:03:52.358 --> 00:03:55.358 რომელიც დამოკიდებულია i და j-ზე. 00:03:55.358 --> 00:03:59.607 ამიტომ ეს i იცვლება უფრო ხშირად ვიდრე j. 00:03:59.607 --> 00:04:05.238 იმისთვის რომ გავიგოთ ეს უკეთესად, მოდით წარმოვიდგინოთ i და y ცვლადები. 00:04:05.238 --> 00:04:09.277 დავწერ სურათს კომენტარის სახით, 00:04:09.277 --> 00:04:12.027 დავაყენებ შევსების ფერს, 00:04:12.027 --> 00:04:16.796 და გამოვიყენებთ text ბრაძანებას, რომ გამოვაჩინო j ცვლადი, ანუ text j 00:04:16.796 --> 00:04:22.025 და შემდეგ ჩავსვავ შესაბამაის ადგილზე აქ. 00:04:22.025 --> 00:04:26.009 ეხლა ჩვენ ვხედავთ, რომ j მიდის 0-დან 12-მდე. 00:04:26.009 --> 00:04:32.019 აქ იყო ჩვენი ძვირფასი ქვები განლაგებული. 00:04:32.019 --> 00:04:35.684 მოდით ეხლა წარმოვიდგინოთ i და ვნახოთ როგორ იცვლება. 00:04:35.684 --> 00:04:43.066 მოდით გავაკეთოთ სხვა ფერი i ცვალდისთვის. 00:04:43.066 --> 00:04:46.475 შემდეგ ჩავსვათ i სადმე. 00:04:46.475 --> 00:04:50.271 შევცვალოთ მისი x, რომ განლაგდეს ეკრანზე, გასწვრივ. 00:04:50.271 --> 00:04:54.688 იგივეს გავაკეთებთ y ცვლადისთვის. 00:04:54.688 --> 00:04:59.561 ეხლა შეგვიძლია ვთქვათ, რომ i იზრდება 0-დან 11-მდე. 00:04:59.561 --> 00:05:04.686 როგორც ვიძახდი, i იცვლება ბევრად უფრო ხშირად, 00:05:04.686 --> 00:05:08.778 და კოდის ეს ხაზი უფრო ხშირად სრულდება, ვიდრე ეს ხაზი, 00:05:08.778 --> 00:05:13.855 იმიტომ რომ კოდის ეს ხაზი სრულდება, შიდა for loop-ის ყოველ შესრულებაზე. 00:05:13.855 --> 00:05:19.527 მაშინ როდესაც ეს კოდი, სრულდება გარე loop-ის ყოველ შესრულებაზე. 00:05:19.527 --> 00:05:22.140 იმედია i და j ცვალდების წარმოდგენა, 00:05:22.140 --> 00:05:26.773 გეხმარებათ უკეთ გაიგოთ რა ხდება ამ nested for loop-ებში. 00:05:26.773 --> 00:05:30.475 ეხლა მოდით დავაბრუნოთ ჩვენი ძვირფასი ქვები, რადგან უფრო მაგარია! 00:05:30.475 --> 00:05:34.066 ამ nested for loop-ებით ბევრი რამის გაკეთება შეგიძლიათ. 00:05:34.066 --> 00:05:37.232 თუ უბრალოდ წარმოიდგენთ ყველაფერს სამყაროში, რაც 00:05:37.232 --> 00:05:39.599 გამოიყურება როგორც ორ განზომილებიანი ბადე, მაგალითად ჭადრაკის დაფა, 00:05:39.599 --> 00:05:44.564 ვარსკვლავები ამერიკის დროშაზე, ლამაზი მოხატულობა ან შპალერი. 00:05:44.564 --> 00:05:47.462 ჩართეთ თქვენი წარმოსახვა და ითამაშეთ ამ კოდით, 00:05:47.462 --> 00:05:49.806 მაგალითად სურათის შეცვლით. 00:05:49.806 --> 00:05:53.796 მე შევცვლი გულით. 00:05:53.796 --> 00:05:57.796 რომ განახოთ როგორ მიყვარს nest for loop-ები.