1 00:00:01,686 --> 00:00:04,237 ძვირფასი ქვა, ნამდვილი ძვირფასი ქვა! 2 00:00:04,237 --> 00:00:08,175 მაგრამ იცით, რომ ერთ ძვირფას ქვაზე უკეთესი, ძვირფასი ქვების მთელი მწკრივია. 3 00:00:08,175 --> 00:00:09,562 რათქმაუნდა, ჩვენ უკვე ვიცით, რომ ძვირფასი ქვების მწკრივის 4 00:00:09,562 --> 00:00:12,562 გასაკეთებლად საუკეთსო გზა არის loop-ი. 5 00:00:12,562 --> 00:00:16,162 მოდით for loop-ის მეშვეობით დავხატოთ 12 ძვირფასი ქვა მწკრივში. 6 00:00:16,162 --> 00:00:19,523 მარცხნიდან ეკრანის სიგანეზე. 7 00:00:19,523 --> 00:00:22,304 აი ასე. ანუ ეს არის 8 00:00:22,304 --> 00:00:31,106 for ( var i უდრის 0; i ნაკლებია 12-ზე; i პლუს პლუსი) 9 00:00:31,106 --> 00:00:36,079 და შემდეგ ავიღებთ ამ ხაზს და გადავაადგილებთ შიგნით აქ. 10 00:00:36,079 --> 00:00:37,429 ეხლა ჩვენ გვაქვს 12 ძვირფასი ქვა, მაგრამ ყველა მოგროვებულია 11 00:00:37,429 --> 00:00:40,305 მარჯვენა მხარეს ერმთანეთზე. 12 00:00:40,305 --> 00:00:43,401 გახსოვთ, ჩვენ გვინდა რომ ეკრანის გასვწრივ იყოს. 13 00:00:43,401 --> 00:00:45,941 ეს ნიშნავს რომ, გვინდა შევცვალოთ x. 14 00:00:45,941 --> 00:00:49,454 ეხლა 36 არის x, მაგრამ ჩვენ გვინდა, რომ იყოს განსხვავებუი ყოველ ჯერზე. 15 00:00:49,454 --> 00:00:51,859 ეს ნიშნავს რომ, ჩვენ გვინდა რომ იყოს დამოკიდებული i-ზე. 16 00:00:51,859 --> 00:00:56,329 ჩვენ შეგვიძლია მარტივად დავწეროთ, i გამრავლებული 36-ზე. 17 00:00:56,329 --> 00:01:02,687 პირველი არის 0-ზე, შემდეგ 36-ზე, შემდეგ 72-ზე და ა.შ. 18 00:01:02,687 --> 00:01:04,575 კარგია! ახლა გვაქვს ძვირფასი ქვების მწკრივი. 19 00:01:04,575 --> 00:01:07,997 ეს მახსენებს იმ სცენებს "ინდიანა ჯონსში" ან "ალადინში", 20 00:01:07,997 --> 00:01:11,306 სადაც მთავარი გმირი მიწისქვეშ აღმოაჩენს ძვირფასი ქვების საუნჯეს, 21 00:01:11,306 --> 00:01:13,732 მაგრამ ზოგადად ისინი ამაზე გაცილებით მეტ ძვირფას ქვას პოულობენ ხოლმე. 22 00:01:13,732 --> 00:01:17,306 ძვირფასი ქვების მწკრივს კი არა, უამრავ ძვირფას ქვას! 23 00:01:17,306 --> 00:01:21,609 როგორ შეგვიძლია ეს ჩვენი ძვირფასი ქვებიც გავაკეთოთ ისე, რომ 24 00:01:21,609 --> 00:01:24,806 ჩადიოდეს ბოლომდე მთელ ეკრანზე. 25 00:01:24,806 --> 00:01:30,639 ჩვენ შეგვიძლია დავიწყოთ for loop-ის გამეორებით და კოპირება-ჩასმით, 26 00:01:30,639 --> 00:01:34,565 და შემდეგ ამ y-ის ყოველ ჯერზე შეცვლით. და ამიტომ, 27 00:01:34,565 --> 00:01:37,688 ჩვენ შევცვლით 60-ით და შემდეგ 90-ით. 28 00:01:37,688 --> 00:01:42,308 ეხლა გვაქვს ძვირფასი ქვების სამი მწკრივი და მაგარია. 29 00:01:42,308 --> 00:01:45,495 მაგრამ ეს ცოტა მოსაწყენი ხდება, რადგან რასაც ვაკეთებთ არის, 30 00:01:45,495 --> 00:01:49,193 კოპირება, ჩასმა და ცვლილება ამ პატარა რაღაცის. 31 00:01:49,193 --> 00:01:52,859 ძირითადად წარსულში, როცა ვწერდით განმეორებით კოდს როგორიც ეს, 32 00:01:52,859 --> 00:01:57,025 ვიფიქრებდით "იქნებ loop-ი ხომ არ გამოგვეყენებინა ამის მაგივრად" 33 00:01:57,025 --> 00:01:58,607 მაგრამ ჩვენ უკვე ვიყენებთ loop-ს. 34 00:01:58,607 --> 00:02:00,854 რა არის ამის გადაწყვეტა, რომ თავიდან ავიცილოთ ამის დაწერა, 35 00:02:00,854 --> 00:02:03,854 ანუ განმეორებითი კოპირება-ჩასმის წერა? 36 00:02:03,854 --> 00:02:09,378 ეს არის რაღაც, რასაც ვეძახით "nested for loops". loop-ი loop-ის შიგნით. 37 00:02:09,378 --> 00:02:12,132 ჩვენ გავაკეთებთ გარე loop-ს, 38 00:02:12,132 --> 00:02:14,851 და ეს მიხედავს ეკრანზე ქვევით ჩასვლას, 39 00:02:14,851 --> 00:02:19,234 და შემდეგ ჩვენი შიდა loop-ი მიხედავს იმას რასაც აკეთებს ეხლა, 40 00:02:19,234 --> 00:02:21,977 რაც არის მარცხნიდან მარჯვნივ წასვლა. 41 00:02:21,977 --> 00:02:24,007 მოდით განახებთ რას ვგულისხმობ. 42 00:02:24,007 --> 00:02:26,851 for - და ვიყენებ განხვავებული ცვლადს ამჯერად, სახელად j, 43 00:02:26,851 --> 00:02:29,851 რადგან ჩვენ უკვე ვიყენებთ i-ს, 44 00:02:29,851 --> 00:02:37,274 ანუ for(var j უდრის 0; j ნაკლებია 13; j პლუს პლუსი). 45 00:02:37,274 --> 00:02:41,999 კარგით, ეს იქნება ჩვენი გარე loop-ი, ზევიდან ქვევით ჩასვლაზე პასუხისმგებელი. 46 00:02:41,999 --> 00:02:48,237 შემდეგ ჩვენ უბრალოდ ავიღებთ წინა for loop-ს და ჩავსვათ იქ შიგნით, 47 00:02:48,237 --> 00:02:53,284 შევასწორებთ აბზაცს, და წავშლით ამ ძველებს. კარგით. 48 00:02:53,284 --> 00:02:59,079 ეხლა ჩვენ გვაქვს ყველა ერთმანეთზე დაწყობილი, ერთ მწკრივში. 49 00:02:59,079 --> 00:03:01,969 ანუ ჩვენ უნდა შევცვალოთ y, ხომ? 50 00:03:01,969 --> 00:03:04,309 ჩვენ ამას ვაკეთებდით მანამდე, როცა ჩვენ ვაკოპირებდით და ვსვავდით და 51 00:03:04,309 --> 00:03:06,108 ეხლა, y ყოველთვის 90-ია. 52 00:03:06,108 --> 00:03:09,440 ჩვენ გვინდა, რომ y იცვლებოდეს ყოველ მწკრივზე. 53 00:03:09,440 --> 00:03:16,188 როგორც y დამოკიდებულია i-ზე, ჩვენ გვინდა, რომ y დამოკიდებული იყოს j-ზე. 54 00:03:16,188 --> 00:03:24,663 შეგვიძლია ეს შევცვალოთ როგორც... შეიძლება, j გამრავლებული 30-ზე. 55 00:03:24,663 --> 00:03:29,934 არის! უმრავი ძვირფასი ქვა. კარგია! 56 00:03:29,934 --> 00:03:31,776 მოდით თავიდან განვიხილოთ ეს რას აკეთებს. 57 00:03:31,776 --> 00:03:38,070 გარე loop-ი ქმნის ამ ცვლად j-ს და ზრდის 13-მდე. 58 00:03:38,070 --> 00:03:44,340 და ყველა ამ გარე loop-ის შესრულებაზე, ამ შიდა loop-ს უშვებს. 59 00:03:44,340 --> 00:03:48,443 შიდა loop-ი ქმნის ცვლად i-ს, რომელიც ადის 12-მდე. 60 00:03:48,443 --> 00:03:52,358 და ყოველ შიდა loop-ის შესრულებაზე, ხატავს სურათს x და y-ზე, 61 00:03:52,358 --> 00:03:55,358 რომელიც დამოკიდებულია i და j-ზე. 62 00:03:55,358 --> 00:03:59,607 ამიტომ ეს i იცვლება უფრო ხშირად ვიდრე j. 63 00:03:59,607 --> 00:04:05,238 იმისთვის რომ გავიგოთ ეს უკეთესად, მოდით წარმოვიდგინოთ i და y ცვლადები. 64 00:04:05,238 --> 00:04:09,277 დავწერ სურათს კომენტარის სახით, 65 00:04:09,277 --> 00:04:12,027 დავაყენებ შევსების ფერს, 66 00:04:12,027 --> 00:04:16,796 და გამოვიყენებთ text ბრაძანებას, რომ გამოვაჩინო j ცვლადი, ანუ text j 67 00:04:16,796 --> 00:04:22,025 და შემდეგ ჩავსვავ შესაბამაის ადგილზე აქ. 68 00:04:22,025 --> 00:04:26,009 ეხლა ჩვენ ვხედავთ, რომ j მიდის 0-დან 12-მდე. 69 00:04:26,009 --> 00:04:32,019 აქ იყო ჩვენი ძვირფასი ქვები განლაგებული. 70 00:04:32,019 --> 00:04:35,684 მოდით ეხლა წარმოვიდგინოთ i და ვნახოთ როგორ იცვლება. 71 00:04:35,684 --> 00:04:43,066 მოდით გავაკეთოთ სხვა ფერი i ცვალდისთვის. 72 00:04:43,066 --> 00:04:46,475 შემდეგ ჩავსვათ i სადმე. 73 00:04:46,475 --> 00:04:50,271 შევცვალოთ მისი x, რომ განლაგდეს ეკრანზე, გასწვრივ. 74 00:04:50,271 --> 00:04:54,688 იგივეს გავაკეთებთ y ცვლადისთვის. 75 00:04:54,688 --> 00:04:59,561 ეხლა შეგვიძლია ვთქვათ, რომ i იზრდება 0-დან 11-მდე. 76 00:04:59,561 --> 00:05:04,686 როგორც ვიძახდი, i იცვლება ბევრად უფრო ხშირად, 77 00:05:04,686 --> 00:05:08,778 და კოდის ეს ხაზი უფრო ხშირად სრულდება, ვიდრე ეს ხაზი, 78 00:05:08,778 --> 00:05:13,855 იმიტომ რომ კოდის ეს ხაზი სრულდება, შიდა for loop-ის ყოველ შესრულებაზე. 79 00:05:13,855 --> 00:05:19,527 მაშინ როდესაც ეს კოდი, სრულდება გარე loop-ის ყოველ შესრულებაზე. 80 00:05:19,527 --> 00:05:22,140 იმედია i და j ცვალდების წარმოდგენა, 81 00:05:22,140 --> 00:05:26,773 გეხმარებათ უკეთ გაიგოთ რა ხდება ამ nested for loop-ებში. 82 00:05:26,773 --> 00:05:30,475 ეხლა მოდით დავაბრუნოთ ჩვენი ძვირფასი ქვები, რადგან უფრო მაგარია! 83 00:05:30,475 --> 00:05:34,066 ამ nested for loop-ებით ბევრი რამის გაკეთება შეგიძლიათ. 84 00:05:34,066 --> 00:05:37,232 თუ უბრალოდ წარმოიდგენთ ყველაფერს სამყაროში, რაც 85 00:05:37,232 --> 00:05:39,599 გამოიყურება როგორც ორ განზომილებიანი ბადე, მაგალითად ჭადრაკის დაფა, 86 00:05:39,599 --> 00:05:44,564 ვარსკვლავები ამერიკის დროშაზე, ლამაზი მოხატულობა ან შპალერი. 87 00:05:44,564 --> 00:05:47,462 ჩართეთ თქვენი წარმოსახვა და ითამაშეთ ამ კოდით, 88 00:05:47,462 --> 00:05:49,806 მაგალითად სურათის შეცვლით. 89 00:05:49,806 --> 00:05:53,796 მე შევცვლი გულით. 90 00:05:53,796 --> 00:05:57,796 რომ განახოთ როგორ მიყვარს nest for loop-ები.