WEBVTT 00:00:01.273 --> 00:00:04.238 ჩვენ ვუბრუნდებით პროგრამას, რომელიც ბეჭდავს ჩემი მეგობრების მწყობრს. 00:00:04.238 --> 00:00:07.007 მაგრამ აქ არის რაღაცა, რაც ნამდვილად მაღიზიანებს. 00:00:07.007 --> 00:00:08.685 ყოველ ჯერზე, როცა ვამატებ ახალ მეგობარს მწყობრში, 00:00:08.685 --> 00:00:11.295 უნდა დავუმატო ახალი text ბრანება აქ. 00:00:11.295 --> 00:00:13.378 მაგალითად ვამატებ ვინსტონს. 00:00:13.378 --> 00:00:15.211 ის ავტომატურად არ ჩნდება. 00:00:15.211 --> 00:00:20.630 თუ მინდა რომ გამოჩნდეს, უნდა დავწერო "text(myFriend[3]", შემდეგ შევცვალო 00:00:20.630 --> 00:00:23.560 y-ის პოზიცია და შემდეგ ვხედავთ ვინსტონს. NOTE Paragraph 00:00:23.560 --> 00:00:25.434 ეს ცოტა ზედმეტი სამუშაოა. 00:00:25.434 --> 00:00:28.937 მე უბრალოდ მინდა, რომ ყოველჯერზე როცა დავამატებ ვინმეს მწყობრში, 00:00:28.937 --> 00:00:31.937 თავისით აკეთებდეს text ბრძანებას. 00:00:31.937 --> 00:00:34.716 გახსოვთ როდის ვისწავლეთ loop-ები? 00:00:34.716 --> 00:00:38.378 Loop-ები იყო კარგი გზა ერთი და იგივე კოდის გასამეორებლად ერთ რიგში. 00:00:38.378 --> 00:00:41.373 მაგალითად თუ გვინდოდა, რომ გვქონოდა რამოდენიმე ხე მწკრივში 00:00:41.373 --> 00:00:43.273 ან რამოდენიმე ბუშტი. 00:00:43.273 --> 00:00:47.733 როგორც ჩანს, loop-ები ასევე კარგი გზა გავუშვათ პატარა კოდი 00:00:47.733 --> 00:00:49.648 თითო ელემენტზე მწყობრში. 00:00:49.648 --> 00:00:54.378 სინამდვილეში, loop-ი ყოველთვის გჭირდებათ, როცა იყენებთ მწყობრს (array). 00:00:54.378 --> 00:00:57.378 ერთად მართლაც კარგად მუშაობენ. 00:00:57.378 --> 00:01:00.736 მოდით გამოვიყენოთ loop-ი, რომ გამოვსახოთ ჩემი მეგობრების სახელები, 00:01:00.736 --> 00:01:03.736 ამ text ბრძანებების მაგივრად, რომ განახოთ რას ვგულისხმობ. 00:01:03.736 --> 00:01:07.795 დავიწყოთ სამი კითხვით, რომელსაც ვუსვავთ ჩვენ თავს, როცა ვიწყებთ loop-ის გაკეთებას. 00:01:07.795 --> 00:01:13.438 პირველი, რა მინდა რომ გავიმეორო? შეხედეთ აქ. რა მეორდება? text ბრძანება. 00:01:13.438 --> 00:01:17.559 რა მინდა რომ შევცვალო ყოველ ჯერზე? მოდით შევხედოთ და ვნახოთ რა არის განსახვავებული. 00:01:17.559 --> 00:01:26.069 y-ის პოზიცია და ინდექსი, ხომ? ანუ მეგობრის ცვლადი და y-ის პოზიცია. 00:01:26.069 --> 00:01:33.570 და რამდენჯერ უნდა გავიმეოროთ? სანამ მეტი მეგობარი აღარ იქნება. 00:01:33.570 --> 00:01:37.440 ეხლა ვიცით რა გვინდა და შეგვიძლია გავაკეთოთ ჩვენი loop-ი. 00:01:37.440 --> 00:01:41.378 ვიწყებთ მოპიდაპირე ცვლადით, რომ ვიცოდეთ სად ვართ loop-ში. 00:01:41.378 --> 00:01:44.378 ანუ ვწერთ "var friendNum=0;" 00:01:44.378 --> 00:01:50.468 ვიწყებთ ნულით, იმიტომ რომ, ხომ გახსოვთ 0 არის პირველი ელემენტი მწყობრში, და არა 1. 00:01:50.468 --> 00:01:57.766 შემდეგ გვაქვს while loop-ი. ვწერთ "while(friendNum < my friends.length)' 00:01:57.766 --> 00:02:01.462 ჩვენ უნდა შევადაროთ მიმდინარე მოპირდაპირე ცვლადი, 00:02:01.462 --> 00:02:04.462 ჯამური რაღააცეების რიცხვს მწყობრში. 00:02:04.462 --> 00:02:07.731 loop-ის შიგნით, სადაც ვიყენებთ ჩვენს text ბრძანებას. 00:02:07.731 --> 00:02:10.711 ვწერთ, "text(myFriends[" - და შემდეგ აქ, რიცხვის მაგივრად, ჩავსვავთ "friendNum"-ს, 00:02:10.711 --> 00:02:15.630 რადგან "friendNum" წარმოადგენს მიმდინარე რიცხვს. 00:02:15.630 --> 00:02:17.961 შემდეგ ჩავსვათ მხოლოდ ერთ პოზიციას ჯერ-ჯერობით. 00:02:17.961 --> 00:02:22.710 ამან მოგვცა პატარა უსასრულო loop-ის შეცდომა, რადგან "friendNum"-თან 00:02:22.710 --> 00:02:25.710 დაკავშირებით არაფერი არ შეგვიცვლია. 00:02:25.710 --> 00:02:29.020 გახსოვთ, ჩვენ უნდა გავზარდოთ "friendNum" ყოველ ჯერზე, წინააღმდეგ შემთხვევაში 00:02:29.020 --> 00:02:33.320 loop-ი გაგრძელდება უსასრულოდ, რადგან ეს მნიშვნელობა ყოველთვის მართალია. 00:02:33.320 --> 00:02:39.271 ვხედავ რაღაც მოხდა. მოდით დავაკომენტარებ ძველ კოდს, რომ კარგად დავინახო რა მოხდა. 00:02:39.271 --> 00:02:43.607 ჩვენ გვაქვს ყველა სახელი, მაგრამ ყველა ერთ ადგილას წერია. 00:02:43.607 --> 00:02:45.706 ამიტომ, უნდა შევცვალოთ ჩვენ y პოზიცია. 00:02:45.706 --> 00:02:50.211 მოდით, ვთქვათ "friendNum*30". 00:02:50.211 --> 00:02:52.129 კარგით, ეს უკეთესია მაგრამ სოფია ეკრანს გარეთ არის და სოფიას ეს 00:02:52.129 --> 00:02:55.129 არ გუახარდება თუ გაიგებს. 00:02:55.129 --> 00:02:59.628 ამიტომ, მოდით დავამატოთ 30. ეხლა ყველა დაშორებულია 30-ით. 00:02:59.628 --> 00:03:04.294 ლამაზია! ეხლა ხედავთ loop-ი როგორ გამოსახავს ჩვენს მწყობრს. 00:03:04.294 --> 00:03:09.349 და ეს ნიშნავს რომ, თუ დავამატებთ მეტ ხალხს, როგორც OhNoesGuy ან შეიძლება Sal, 00:03:09.349 --> 00:03:11.569 თუ უბრალოდ დავამატებ მწყობრს, მაშინ Sal-ი იქნება ჩემი მეგობარი. მაგარია! 00:03:11.569 --> 00:03:13.569 ეხლა ის უკვე ჩემი მეგობარია. 00:03:13.569 --> 00:03:18.271 თქვენ ხედავთ, რომ ეს ავტომოტურად გვიჩვენებს ახალ მეგობრებს, 00:03:18.271 --> 00:03:21.271 რადგან ყოველთვის მთლიან მწყობრს გადის. 00:03:21.271 --> 00:03:24.296 შეგვიძლია წავშალოთ ჩვენი ძველი კოდი. მეტი აღარ გვჭირდება. 00:03:24.296 --> 00:03:28.237 მოდით გავიაროთ ეს კოდი თავიდან და გადავხედოთ რა აკეთებს. 00:03:28.237 --> 00:03:31.628 ჩვენ ვიწყებთ "friendNum" უდრის ნულით. 00:03:31.628 --> 00:03:34.673 ვამოწმებთ, რომ ვნახოთ, "friendNum"-ი თუ ნაკლებია მიმდინარე სიგრძეზე. 00:03:34.673 --> 00:03:37.841 წარმოვიდგენთ რომ ნული ნაკლებია ექვსზე. მართალია. 00:03:37.841 --> 00:03:41.712 შემდეგ შევდივართ აქ და ვწერთ text, ჩემი მეგობრები "friendNum". 00:03:41.712 --> 00:03:44.294 თავიდან ყველა გახდება ნული. 00:03:44.294 --> 00:03:47.295 შემდეგ, 30 პლუს 0 გამრავლებული 30-ზე. 00:03:47.295 --> 00:03:53.712 ეს გვიჩვენებს სოფიას 10-ზე და 30-ზე. ამას აკეთებს ეს. 00:03:53.712 --> 00:03:56.295 შემდეგ friendNum++. და შემდეგ ხდება 1. 00:03:56.295 --> 00:04:00.221 შემდეგ ბრუნდება უკან და ამომბს, "კარგი, 1 ნაკლებია "myFriends.length"-ზე? კი არის." 00:04:00.221 --> 00:04:02.388 და მიდის, მიდის და მიდის. 00:04:02.388 --> 00:04:08.034 და ბოლოს მივდივართ Sal-თან. გახსოვთ, Sal-ი არის მეექვსე ელემენტი მწყობრში, 00:04:08.034 --> 00:04:11.314 მაგრამ მისი ინდექსი არის 5, რადგან ვიწყებთ ნულიდან 00:04:11.314 --> 00:04:13.296 ხუთი ნაკლებია ექვსზე? კი. 00:04:13.296 --> 00:04:15.462 ამიტომ გვიჩვენებს "myFriends" ხუთს. 00:04:15.462 --> 00:04:21.628 შემდეგ ხდება ექვსი და ვამბობთ, "ექვსი ნაკლებია ექვსზე?" არა. ტოლია. 00:04:21.628 --> 00:04:25.440 ამიტომ ეს იქნება მცდარი. მეექსვე ელემენტს არსდროს არ გვიჩვენებს, 00:04:25.440 --> 00:04:29.972 რაც კარგია, რადგან ინდექს ექვსში არ არაფერი არ არის. 00:04:29.972 --> 00:04:32.772 მეექვსე ელემენტი არის, მაგრამ ინდექს ექვსში არაფერი არ არის. 00:04:32.772 --> 00:04:36.610 შეიძლება დამაბნეველი იყოს, ის ფაქტი რომ ნულია და ერთი 00:04:36.610 --> 00:04:38.570 და ამ ყველაფერს აკეთებს, მაგრამ მიეჩვევით. 00:04:38.570 --> 00:04:41.402 კარგით, ეს არის ჩვენი loop-ი. 00:04:41.402 --> 00:04:45.295 ეხლა, თუ გინდათ, შეგიძლიათ გამოიყენოთ for loop-ი, თუ გირჩევნიათ for loop-ები. 00:04:45.295 --> 00:04:49.212 for loop-ებისთვის, ჩვენ უბრალოდ დავწერთ for, და შემდეგ, "var friendNum = 0;" 00:04:49.212 --> 00:04:54.392 და შემდეგ გვაქვს ჩვენი პირობა 00:04:54.392 --> 00:04:57.237 "friendNum < myFriends.length" 00:04:57.237 --> 00:05:01.672 და შემდეგ ჩვენი ზრდადი - "friendNum++", 00:05:01.672 --> 00:05:06.711 და შემდეგ for loop-ის შიგნით, შეგვიძლია უბრალოდ ჩავსვათ კოდის ეს ხაზი. 00:05:06.711 --> 00:05:09.711 და მე შევცვლი x-ს, რომ დაინახოთ, რომ ზუსტად იგივეს აკეთებს. 00:05:09.711 --> 00:05:15.781 ასე რომ, თქვენი ნებაა რომელს გამოიყენებთ, მაგრამ იდეა ის არის რომ გამოიყენოთ 00:05:15.781 --> 00:05:21.109 loop-ი მწყობრის დროს, რადგან ეს ნამდვილად გაგაძლიერებთ.