პროგრამირების საფუძვლები › დამწყები › ციკლები
for ციკლი
ეს თავი CodeQuest Pro-ს ნაწილია
Pro ხსნის სკოლის ყველა კურსს და თამაშის ყველა ლეველს, ვიდეოს და პროექტს. ერთჯერადი გადახდა, გამოწერის გარეშე.
რას ისწავლი
- როგორ იწერება
forციკლი და რას ნიშნავს მისი სამი ნაწილი - როგორ დაითვალო ჯამი ციკლით
- როგორ ითვალო უკან ან ორ-ორად
სამი ნაწილი ერთ ხაზზე
while ციკლში დასაწყისი, პირობა და ბიჯი სხვადასხვა ადგილასაა: დასაწყისი ციკლის წინ, პირობა ფრჩხილებში, ბიჯი ბლოკის ბოლოს. ამიტომ ადვილია, ბიჯი დაგავიწყდეს. for ციკლი სამივეს ერთ ხაზზე აგროვებს:
for (let i = 1; i <= 5; i++) {
console.log(i);
}ფრჩხილებში სამი ნაწილია, წერტილ-მძიმით გამოყოფილი:
let i = 1— დასაწყისი. სრულდება ერთხელ, ციკლის დაწყებამდე.i <= 5— პირობა. მოწმდება ყოველი იტერაციის წინ.i++— ბიჯი. სრულდება ყოველი იტერაციის შემდეგ.
ეს ციკლი ზუსტად იმავეს აკეთებს, რასაც წინა თავის while, ოღონდ უფრო კომპაქტურად. ერთი შეხედვით ჩანს, საიდან იწყება, სად მთავრდება და რა ბიჯით მიდის.
ჯამის დათვლა
ციკლის ერთ-ერთი ყველაზე ხშირი გამოყენებაა რაიმეს დაგროვება. ვთქვათ, გინდა 1-დან 100-მდე ყველა რიცხვის ჯამი:
let sum = 0;
for (let i = 1; i <= 100; i++) {
sum += i;
}
console.log(sum); // 5050sum იწყება ნულიდან და ყოველ იტერაციაზე მას ახალი i ემატება: 0 + 1, მერე + 2, მერე + 3 და ასე 100-მდე. ცვლადს, რომელიც ციკლში რაღაცას აგროვებს, დამგროვებელი (accumulator) ჰქვია. დამგროვებელი ყოველთვის ციკლის წინ იქმნება: ციკლის შიგნით რომ შექმნა, ყოველ იტერაციაზე თავიდან განულდებოდა.
უკუთვლა და სხვა ბიჯები
ბიჯი აუცილებლად i++ არ არის. შეგიძლია უკან ითვალო ან ნებისმიერი რიცხვით გადახტე:
for (let i = 10; i >= 0; i -= 5) {
console.log(i); // 10, 5, 0
}
for (let i = 3; i <= 30; i += 3) {
console.log(i); // 3, 6, 9 … 30
}მეორე ციკლი 3-ის ჯერადებს ბეჭდავს. ასე მარტივად დაწერ, მაგალითად, გამრავლების ტაბულას:
for (let i = 1; i <= 10; i++) {
console.log(`7 x ${i} = ${7 * i}`);
}for თუ while
ორივე ციკლი ერთსა და იმავეს აკეთებს და ნებისმიერი for შეიძლება while-ად გადაწერო. არჩევანი წაკითხვადობაზეა დამოკიდებული:
for, როცა იცი, რამდენჯერ გაიმეორებ: 1-დან 100-მდე, სიის ყველა ელემენტი, 10 რაუნდი.while, როცა გაგრძელება პირობაზეა დამოკიდებული და რაოდენობა წინასწარ არ იცი: სანამ ფული არ დაგროვდება, სანამ მომხმარებელი სწორ პასუხს არ ჩაწერს.
სცადე თავად
გაუშვი, მერე ისე შეცვალე, რომ შენი საყვარელი რიცხვის ტაბულა დაბეჭდოს, ან 1-დან 20-მდე.
ხშირი შეცდომები
- მძიმეები წერტილ-მძიმეების ნაცვლად.
for (let i = 1, i <= 5, i++)შეცდომაა. ნაწილებს წერტილ-მძიმე ჰყოფს. <თუ<=.i < 109-ზე ჩერდება,i <= 1010-ზე. ყოველთვის შეამოწმე, ბოლო რიცხვი უნდა შევიდეს თუ არა.- დამგროვებელი ციკლის შიგნით. თუ
let sum = 0;ბლოკში წერია, ჯამი ყოველ იტერაციაზე თავიდან იწყება და ბოლოს მხოლოდ ბოლო რიცხვი რჩება.
სავარჯიშო
დაითვალე ლუწი რიცხვების ჯამი 2-დან 20-მდე (2 + 4 + … + 20) for ციკლით და დაბეჭდე ჯამი: 110.
💡 მინიშნება
დაიწყე i = 2-დან, ბიჯად გამოიყენე i += 2, პირობად i <= 20. ციკლის წინ შექმენი let sum = 0;.
✅ ამოხსნის ნახვა
let sum = 0;
for (let i = 2; i <= 20; i += 2) {
sum += i;
}
console.log("ჯამი:", sum);მინი-ქვიზი
1რამდენჯერ შესრულდება for (let i = 0; i < 5; i++)-ის ბლოკი?
i იღებს მნიშვნელობებს 0, 1, 2, 3, 4: სულ ხუთი.
2რას დაბეჭდავს? for (let i = 1; i <= 3; i++) { console.log(i * 2); }
i არის 1, 2, 3 და თითოეული ორზე მრავლდება.
3რომელი ნაწილი სრულდება მხოლოდ ერთხელ?
დასაწყისი ციკლის დაწყებამდე ერთხელ სრულდება. პირობა და ბიჯი ყოველ იტერაციაზე.
შეჯამება
for (დასაწყისი; პირობა; ბიჯი) { ... }ციკლის სამივე ნაწილს ერთ ხაზზე აგროვებს.- დამგროვებელი ციკლის წინ იქმნება და ციკლში იზრდება.
- ბიჯი შეიძლება იყოს
i--,i += 2ან ნებისმიერი სხვა. for, როცა რაოდენობა იცი,while, როცა გაგრძელება პირობაზეა დამოკიდებული.