შესვლა

პროგრამირების საფუძვლები › დამწყები › ციკლები

for ციკლი

მარტივი⏱ 7 წთ+20 XP👑 Pro#ციკლები#for#ჯამი

რას ისწავლი

  • როგორ იწერება for ციკლი და რას ნიშნავს მისი სამი ნაწილი
  • როგორ დაითვალო ჯამი ციკლით
  • როგორ ითვალო უკან ან ორ-ორად

სამი ნაწილი ერთ ხაზზე

while ციკლში დასაწყისი, პირობა და ბიჯი სხვადასხვა ადგილასაა: დასაწყისი ციკლის წინ, პირობა ფრჩხილებში, ბიჯი ბლოკის ბოლოს. ამიტომ ადვილია, ბიჯი დაგავიწყდეს. for ციკლი სამივეს ერთ ხაზზე აგროვებს:

JavaScript
for (let i = 1; i <= 5; i++) {
  console.log(i);
}

ფრჩხილებში სამი ნაწილია, წერტილ-მძიმით გამოყოფილი:

  1. let i = 1 — დასაწყისი. სრულდება ერთხელ, ციკლის დაწყებამდე.
  2. i <= 5 — პირობა. მოწმდება ყოველი იტერაციის წინ.
  3. i++ — ბიჯი. სრულდება ყოველი იტერაციის შემდეგ.

ეს ციკლი ზუსტად იმავეს აკეთებს, რასაც წინა თავის while, ოღონდ უფრო კომპაქტურად. ერთი შეხედვით ჩანს, საიდან იწყება, სად მთავრდება და რა ბიჯით მიდის.

ჯამის დათვლა

ციკლის ერთ-ერთი ყველაზე ხშირი გამოყენებაა რაიმეს დაგროვება. ვთქვათ, გინდა 1-დან 100-მდე ყველა რიცხვის ჯამი:

JavaScript
let sum = 0;

for (let i = 1; i <= 100; i++) {
  sum += i;
}

console.log(sum);   // 5050

sum იწყება ნულიდან და ყოველ იტერაციაზე მას ახალი i ემატება: 0 + 1, მერე + 2, მერე + 3 და ასე 100-მდე. ცვლადს, რომელიც ციკლში რაღაცას აგროვებს, დამგროვებელი (accumulator) ჰქვია. დამგროვებელი ყოველთვის ციკლის წინ იქმნება: ციკლის შიგნით რომ შექმნა, ყოველ იტერაციაზე თავიდან განულდებოდა.

უკუთვლა და სხვა ბიჯები

ბიჯი აუცილებლად i++ არ არის. შეგიძლია უკან ითვალო ან ნებისმიერი რიცხვით გადახტე:

JavaScript
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-ის ჯერადებს ბეჭდავს. ასე მარტივად დაწერ, მაგალითად, გამრავლების ტაბულას:

JavaScript
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-მდე.

JavaScript · სცადე თავად

ხშირი შეცდომები

  • მძიმეები წერტილ-მძიმეების ნაცვლად. for (let i = 1, i <= 5, i++) შეცდომაა. ნაწილებს წერტილ-მძიმე ჰყოფს.
  • < თუ <=. i < 10 9-ზე ჩერდება, i <= 10 10-ზე. ყოველთვის შეამოწმე, ბოლო რიცხვი უნდა შევიდეს თუ არა.
  • დამგროვებელი ციკლის შიგნით. თუ let sum = 0; ბლოკში წერია, ჯამი ყოველ იტერაციაზე თავიდან იწყება და ბოლოს მხოლოდ ბოლო რიცხვი რჩება.

სავარჯიშო

დაითვალე ლუწი რიცხვების ჯამი 2-დან 20-მდე (2 + 4 + … + 20) for ციკლით და დაბეჭდე ჯამი: 110.

JavaScript · სცადე თავად
💡 მინიშნება

დაიწყე i = 2-დან, ბიჯად გამოიყენე i += 2, პირობად i <= 20. ციკლის წინ შექმენი let sum = 0;.

✅ ამოხსნის ნახვა
JavaScript
let sum = 0;

for (let i = 2; i <= 20; i += 2) {
  sum += i;
}

console.log("ჯამი:", sum);

მინი-ქვიზი

1რამდენჯერ შესრულდება for (let i = 0; i < 5; i++)-ის ბლოკი?

2რას დაბეჭდავს? for (let i = 1; i <= 3; i++) { console.log(i * 2); }

3რომელი ნაწილი სრულდება მხოლოდ ერთხელ?

შეჯამება

  • for (დასაწყისი; პირობა; ბიჯი) { ... } ციკლის სამივე ნაწილს ერთ ხაზზე აგროვებს.
  • დამგროვებელი ციკლის წინ იქმნება და ციკლში იზრდება.
  • ბიჯი შეიძლება იყოს i--, i += 2 ან ნებისმიერი სხვა.
  • for, როცა რაოდენობა იცი, while, როცა გაგრძელება პირობაზეა დამოკიდებული.
📝 ჩემი შენიშვნა