შესვლა

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

რატომ გვჭირდება გამეორება

მარტივი⏱ 6 წთ+20 XP👑 Pro#ციკლები#გამეორება#იტერაცია

რას ისწავლი

  • რა პრობლემას წყვეტს ციკლი (loop)
  • სამი ნაწილი, რომელიც ყველა ციკლს აქვს
  • რა არის უსასრულო ციკლი და რატომ ჩნდება

ხელით თუ ციკლით

დაბეჭდე რიცხვები 1-დან 5-მდე. ჯერჯერობით ასე დაწერდი:

JavaScript
console.log(1);
console.log(2);
console.log(3);
console.log(4);
console.log(5);

ხუთი ხაზი მოთმენით შეიძლება. მაგრამ 1-დან 1000-მდე? ან იმდენჯერ, რამდენი მოსწავლეც არის კლასში, რაც წინასწარ არ იცი? ხელით გამეორება აქ აღარ გამოგადგება.

კომპიუტერი სწორედ გამეორებაშია ძლიერი: ერთსა და იმავე მოქმედებას მილიონჯერ შეასრულებს და არ მოიწყენს. ამისთვის არსებობს ციკლი (loop): კოდის ბლოკი, რომელიც მეორდება, სანამ პირობა სრულდება. ზემოთ მოყვანილი ხუთი ხაზი ციკლით ასე გამოიყურება:

JavaScript
let i = 1;

while (i <= 5) {
  console.log(i);
  i++;
}

შედეგი იგივეა. 1000-მდე დასაბეჭდად კი მხოლოდ ერთი რიცხვი უნდა შეცვალო: 5-ის ნაცვლად 1000.

ციკლის სამი ნაწილი

ნებისმიერ ციკლს, რომელ ენაზეც არ უნდა იყოს დაწერილი, სამი ნაწილი აქვს:

  1. დასაწყისი. საიდან ვიწყებთ: let i = 1;. ცვლადს, რომელიც ბიჯებს ითვლის, ხშირად i-ს ვარქმევთ, ინგლისური სიტყვიდან index.
  2. პირობა. როდემდე ვაგრძელებთ: i <= 5. ყოველი გამეორების წინ კომპიუტერი ამოწმებს მას. სანამ პირობა true-ა, ციკლი გრძელდება.
  3. ბიჯი. როგორ ვუახლოვდებით დასასრულს: i++. ყოველ ჯერზე რაღაც უნდა შეიცვალოს, თორემ პირობა სამუდამოდ true დარჩება.

ციკლის ბლოკის ერთ შესრულებას იტერაცია (iteration) ჰქვია. ზემოთ მოყვანილი ციკლი ხუთ იტერაციას აკეთებს.

სად შეხვდები ციკლებს

ციკლები ყველგანაა, თუნდაც ერთი შეხედვით არ ჩანდეს:

  • თამაში ყოველ წამში ბევრჯერ ხატავს ეკრანს: ეს ციკლია.
  • ჩატი ყველა შეტყობინებას რიგრიგობით აჩვენებს: ციკლი სიაზე.
  • პროგრამა პაროლს ხელახლა გეკითხება, სანამ სწორს არ ჩაწერ: ციკლი პირობით.
  • ტაიმერი ითვლის 10-დან 0-მდე: ციკლი, რომელიც კლებულობს.

უსასრულო ციკლი

თუ ბიჯი დაგავიწყდა, პირობა არასოდეს გახდება false და ციკლი უსასრულოდ გაგრძელდება. ასეთ ციკლს უსასრულო ციკლი (infinite loop) ჰქვია. ბრაუზერში ის გვერდს „ყინავს“. ამ გვერდის რედაქტორი კოდს 3 წამის შემდეგ აჩერებს, ასე რომ, აქ ექსპერიმენტი უსაფრთხოა.

სცადე თავად

გაუშვი ათვლა. მერე ისე შეცვალე, რომ 20-დან დაიწყოს, ან ბოლოს სხვა სიტყვა დაბეჭდოს.

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

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

  • დავიწყებული ბიჯი. i++-ის გარეშე i სულ 1 რჩება და ციკლი არ მთავრდება.
  • ბიჯი არასწორი მიმართულებით. თუ პირობაა i <= 5, ბიჯი კი i--, i დასასრულს კი არ უახლოვდება, შორდება.
  • ერთით მეტი ან ნაკლები. i < 5 ხუთამდე ბეჭდავს, ხუთის ჩათვლით არა. პროგრამისტები ამას „ერთის შეცდომას“ (off-by-one) ეძახიან. პირობა ყოველთვის შეამოწმე ბოლო რიცხვზე.

სავარჯიშო

ციკლით დაბეჭდე ლუწი რიცხვები 2-დან 10-მდე: 2, 4, 6, 8, 10, თითო ცალკე ხაზზე.

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

დაიწყე 2-დან და ბიჯად i += 2 გამოიყენე. პირობაა i <= 10.

✅ ამოხსნის ნახვა
JavaScript
let i = 2;

while (i <= 10) {
  console.log(i);
  i += 2;
}

მინი-ქვიზი

1რა არის ციკლი?

2რა მოხდება, თუ ციკლში i++ დაგავიწყდა?

3რამდენ რიცხვს დაბეჭდავს ციკლი, რომელიც 1-დან იწყება, პირობაა i < 5, ბიჯი i++?

შეჯამება

  • ციკლი კოდს იმეორებს, სანამ პირობა true-ა.
  • ყოველ ციკლს აქვს დასაწყისი, პირობა და ბიჯი.
  • ბლოკის ერთ შესრულებას იტერაცია ჰქვია.
  • ბიჯის გარეშე ციკლი უსასრულო ხდება.
📝 ჩემი შენიშვნა