ჩვენ ვუბრუნდებით პროგრამას, რომელიც ბეჭდავს ჩემი მეგობრების მწყობრს.
მაგრამ აქ არის რაღაცა, რაც ნამდვილად მაღიზიანებს.
ყოველ ჯერზე, როცა ვამატებ ახალ მეგობარს მწყობრში,
უნდა დავუმატო ახალი text ბრანება აქ.
მაგალითად ვამატებ ვინსტონს.
ის ავტომატურად არ ჩნდება.
თუ მინდა რომ გამოჩნდეს, უნდა დავწერო "text(myFriend[3]", შემდეგ შევცვალო
y-ის პოზიცია და შემდეგ ვხედავთ ვინსტონს.
ეს ცოტა ზედმეტი სამუშაოა.
მე უბრალოდ მინდა, რომ ყოველჯერზე როცა დავამატებ ვინმეს მწყობრში,
თავისით აკეთებდეს text ბრძანებას.
გახსოვთ როდის ვისწავლეთ loop-ები?
Loop-ები იყო კარგი გზა ერთი და იგივე კოდის გასამეორებლად ერთ რიგში.
მაგალითად თუ გვინდოდა, რომ გვქონოდა რამოდენიმე ხე მწკრივში
ან რამოდენიმე ბუშტი.
როგორც ჩანს, loop-ები ასევე კარგი გზა გავუშვათ პატარა კოდი
თითო ელემენტზე მწყობრში.
სინამდვილეში, loop-ი ყოველთვის გჭირდებათ, როცა იყენებთ მწყობრს (array).
ერთად მართლაც კარგად მუშაობენ.
მოდით გამოვიყენოთ loop-ი, რომ გამოვსახოთ ჩემი მეგობრების სახელები,
ამ text ბრძანებების მაგივრად, რომ განახოთ რას ვგულისხმობ.
დავიწყოთ სამი კითხვით, რომელსაც ვუსვავთ ჩვენ თავს, როცა ვიწყებთ loop-ის გაკეთებას.
პირველი, რა მინდა რომ გავიმეორო? შეხედეთ აქ. რა მეორდება? text ბრძანება.
რა მინდა რომ შევცვალო ყოველ ჯერზე? მოდით შევხედოთ და ვნახოთ რა არის განსახვავებული.
y-ის პოზიცია და ინდექსი, ხომ? ანუ მეგობრის ცვლადი და y-ის პოზიცია.
და რამდენჯერ უნდა გავიმეოროთ? სანამ მეტი მეგობარი აღარ იქნება.
ეხლა ვიცით რა გვინდა და შეგვიძლია გავაკეთოთ ჩვენი loop-ი.
ვიწყებთ მოპიდაპირე ცვლადით, რომ ვიცოდეთ სად ვართ loop-ში.
ანუ ვწერთ "var friendNum=0;"
ვიწყებთ ნულით, იმიტომ რომ, ხომ გახსოვთ 0 არის პირველი ელემენტი მწყობრში, და არა 1.
შემდეგ გვაქვს while loop-ი. ვწერთ "while(friendNum < my friends.length)'
ჩვენ უნდა შევადაროთ მიმდინარე მოპირდაპირე ცვლადი,
ჯამური რაღააცეების რიცხვს მწყობრში.
loop-ის შიგნით, სადაც ვიყენებთ ჩვენს text ბრძანებას.
ვწერთ, "text(myFriends[" - და შემდეგ აქ, რიცხვის მაგივრად, ჩავსვავთ "friendNum"-ს,
რადგან "friendNum" წარმოადგენს მიმდინარე რიცხვს.
შემდეგ ჩავსვათ მხოლოდ ერთ პოზიციას ჯერ-ჯერობით.
ამან მოგვცა პატარა უსასრულო loop-ის შეცდომა, რადგან "friendNum"-თან
დაკავშირებით არაფერი არ შეგვიცვლია.
გახსოვთ, ჩვენ უნდა გავზარდოთ "friendNum" ყოველ ჯერზე, წინააღმდეგ შემთხვევაში
loop-ი გაგრძელდება უსასრულოდ, რადგან ეს მნიშვნელობა ყოველთვის მართალია.
ვხედავ რაღაც მოხდა. მოდით დავაკომენტარებ ძველ კოდს, რომ კარგად დავინახო რა მოხდა.
ჩვენ გვაქვს ყველა სახელი, მაგრამ ყველა ერთ ადგილას წერია.
ამიტომ, უნდა შევცვალოთ ჩვენ y პოზიცია.
მოდით, ვთქვათ "friendNum*30".
კარგით, ეს უკეთესია მაგრამ სოფია ეკრანს გარეთ არის და სოფიას ეს
არ გუახარდება თუ გაიგებს.
ამიტომ, მოდით დავამატოთ 30. ეხლა ყველა დაშორებულია 30-ით.
ლამაზია! ეხლა ხედავთ loop-ი როგორ გამოსახავს ჩვენს მწყობრს.
და ეს ნიშნავს რომ, თუ დავამატებთ მეტ ხალხს, როგორც OhNoesGuy ან შეიძლება Sal,
თუ უბრალოდ დავამატებ მწყობრს, მაშინ Sal-ი იქნება ჩემი მეგობარი. მაგარია!
ეხლა ის უკვე ჩემი მეგობარია.
თქვენ ხედავთ, რომ ეს ავტომოტურად გვიჩვენებს ახალ მეგობრებს,
რადგან ყოველთვის მთლიან მწყობრს გადის.
შეგვიძლია წავშალოთ ჩვენი ძველი კოდი. მეტი აღარ გვჭირდება.
მოდით გავიაროთ ეს კოდი თავიდან და გადავხედოთ რა აკეთებს.
ჩვენ ვიწყებთ "friendNum" უდრის ნულით.
ვამოწმებთ, რომ ვნახოთ, "friendNum"-ი თუ ნაკლებია მიმდინარე სიგრძეზე.
წარმოვიდგენთ რომ ნული ნაკლებია ექვსზე. მართალია.
შემდეგ შევდივართ აქ და ვწერთ text, ჩემი მეგობრები "friendNum".
თავიდან ყველა გახდება ნული.
შემდეგ, 30 პლუს 0 გამრავლებული 30-ზე.
ეს გვიჩვენებს სოფიას 10-ზე და 30-ზე. ამას აკეთებს ეს.
შემდეგ friendNum++. და შემდეგ ხდება 1.
შემდეგ ბრუნდება უკან და ამომბს, "კარგი, 1 ნაკლებია "myFriends.length"-ზე? კი არის."
და მიდის, მიდის და მიდის.
და ბოლოს მივდივართ Sal-თან. გახსოვთ, Sal-ი არის მეექვსე ელემენტი მწყობრში,
მაგრამ მისი ინდექსი არის 5, რადგან ვიწყებთ ნულიდან
ხუთი ნაკლებია ექვსზე? კი.
ამიტომ გვიჩვენებს "myFriends" ხუთს.
შემდეგ ხდება ექვსი და ვამბობთ, "ექვსი ნაკლებია ექვსზე?" არა. ტოლია.
ამიტომ ეს იქნება მცდარი. მეექსვე ელემენტს არსდროს არ გვიჩვენებს,
რაც კარგია, რადგან ინდექს ექვსში არ არაფერი არ არის.
მეექვსე ელემენტი არის, მაგრამ ინდექს ექვსში არაფერი არ არის.
შეიძლება დამაბნეველი იყოს, ის ფაქტი რომ ნულია და ერთი
და ამ ყველაფერს აკეთებს, მაგრამ მიეჩვევით.
კარგით, ეს არის ჩვენი loop-ი.
ეხლა, თუ გინდათ, შეგიძლიათ გამოიყენოთ for loop-ი, თუ გირჩევნიათ for loop-ები.
for loop-ებისთვის, ჩვენ უბრალოდ დავწერთ for, და შემდეგ, "var friendNum = 0;"
და შემდეგ გვაქვს ჩვენი პირობა
"friendNum < myFriends.length"
და შემდეგ ჩვენი ზრდადი - "friendNum++",
და შემდეგ for loop-ის შიგნით, შეგვიძლია უბრალოდ ჩავსვათ კოდის ეს ხაზი.
და მე შევცვლი x-ს, რომ დაინახოთ, რომ ზუსტად იგივეს აკეთებს.
ასე რომ, თქვენი ნებაა რომელს გამოიყენებთ, მაგრამ იდეა ის არის რომ გამოიყენოთ
loop-ი მწყობრის დროს, რადგან ეს ნამდვილად გაგაძლიერებთ.