Skip to content

Latest commit

 

History

History
158 lines (115 loc) · 10.5 KB

File metadata and controls

158 lines (115 loc) · 10.5 KB

ციკლები დარტში

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

როგორ მუშაობს while ციკლი დარტში?

while ციკლის სინტაქსი ასე გამოიყურება:

while (პირობა) {
    ინსტრუქცია 1
    ინსტრუქცია 2
    ინსტრუქცია 3
    ...
}

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

void main() {
    int index = 0;

    while (index < 5) {
        print(index);
        index++;
    }
}

ზემოთ მოცემული პროგრამა:

  • ქმნის ცვლადს სახელად index და ანიჭებს მნიშვნელობას 0.
  • ქმნის while ციკლს
  • ამოწმებს თუ კი index ცვლადი ნაკლებია 5 ზე
  • კონსოლში ბეჭდავს index ცვლადის მნიშვნელობას
  • ზრდის index ცვლადს 1_ით

პროგრამის გაშვების შემდეგ კონსოლში დაიბეჭდება:

0,1,2,3,4

while ციკლის პირობაში შეგვიძლია გამოვიყენოთ ყველა შედარების ოპერატორი:

  • (>) მეტია ოპერატორი
  • (>=) მეტია ან ტოლია ოპერატორი
  • (<) ნაკლებია ოპერატორი
  • (<=) ნაკლებია ან ტოლია ოპერატორი
  • (==) შედარების ოპერატორი
  • (!=) არ უდრიდ ოპერატორი

++ ოპერატორი გამოიყენება რიცხვის ერთით გასაზრდელად. ასევე გვაქვს -- ოპერატორი (ორი მინუსი) რომელიც რიცხვს ამცირებს ერთით.

ქვემოთ მოცემულ პროგრამა იგივე ფუნქციონალს ასრულებს რაც ზემოთ

void main() {
    int index = 0;

    while (index < 5) {
        print(index);
        index = index + 1; // index ცვლადის მნიშვნელობას ვანიჭებთ ახალ მნიშვნელობას (index ცვლადის ძველ მნიშვნელობას დამატებული 1)
    }
}

როდის უნდა გამოვიყენოთ while ციკლი?

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

import 'dart:math';

void main() {
  int number = 0;

  while (number != 10) {
    number = Random().nextInt(10) + 1; // დააგენერირებს შემთხვევით მთელ რიცხვს 1 იდან ათის ჩათვლით
    print(number);
  }
  print('finally number is 10!');
}

როგორ მუშაობს for ციკლი

for ციკლის სინტაქსი ასე გამოიყურება

for (საკონტროლო ცვლადის შექმნა; პირობა; საკონტროლო ცვლადის ცვლილება) {
    ინსტრუქცია 1
    ინსტრუქცია 2
    ინსტრუქცია 3
    ...
}

for ციკლის სტანდარტულ ვერსიაში მრგავლ ფრჩხილებს შორის ჩვენ:

  • ვქმნით საკონტროლო ცვლადს
  • ვადარებთ ცვლადს წინასწარ განსაზღვრულ რიცხვს
  • ვცვლით საკონტროლო ცვლადს (ვზრდით ან ვამცირებთ) რათა როდესღაც for ციკლის პირობა გახდეს false და ციკლმა დაასრულოს მუშაობა
void mian() {
    for (int i = 0; i < 5; i++) {
        print(i);
    }
}

ზემოთ მოცემული პროგრამის გაშვების შემდეგ კონსოლში დაიბეჭდება: 0,1,2,3,4

for ციკლის პირობაშიც შეგვიძლია გამოვიყენოთ ყველა შედარების ოპერატორი:

  • (>) მეტია ოპერატორი
  • (>=) მეტია ან ტოლია ოპერატორი
  • (<) ნაკლებია ოპერატორი
  • (<=) ნაკლებია ან ტოლია ოპერატორი
  • (==) შედარების ოპერატორი
  • (!=) არ უდრიდ ოპერატორი

როდის უნდა გამოვიყენოთ for ციკლი?

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

  • for ციკლის დახმარებით ინსტრუქციებს ვასრულებთ სამჯერ.
  • ამ ინსტრუქციებში ვაგენერირებთ შემთხვევით რიცხვს 1 იდან 10_ის ჩათვლით.
  • თუ დაგენერირდა რიცხვი კონსოლში ვბეჭდავთ შესაბამის მესიჯს.
  • თუ არ დაგენერირდა რიცხვი 10 პროგრამა არ დაბეჭდავს კონსოლში არაფერს.
import 'dart:math';

void main() {
  for (int i = 0; i < 5; i++) {
      int number = Random().nextInt(10) + 1;
      if (number == 10) {
          print('პროგრამამ დააგენერირა რიცხვი 10');
      }
  }
}

მოცემული პროგრამის გაშვებისას კონსოლში შეიძლება დაიბეჭდოს მესიჯი 'პროგრამამ დააგენერირა რიცხვი 10'

სავარჯიშოები

  1. დაწერე პროგრამა, რომელიც კონსოლში დაბეჭდავს ყველა ლუწ რიცხვს 0_იდან 10_ის ჩათვლით. გამოიყენე for ან while ციკლი.
  2. დაწერე პროგრამა, რომელიც კონსოლში დაბეჭდავს ყველა კენტ რიცხვს 0_იდან 10_ის ჩათვლით. გამოიყენე for ან while ციკლი.
  3. დაწერე პროგრამა, რომელიც კონსოლში დაბეჭდავს 1 იდან ასამდე რიცხვების ჯამს. გამოიყენე for ან while ციკლი.