
C ენაში განმეორებადი ოპერაციების შესასრულებლად გამოიყენება ციკლები (loops).
ციკლებს შეუძლიათ გაიმეორონ ოპერაცია, მანამ სანამ სრულდება გარკვეული პირობა.
C-ში გვაქვს 3 ტიპის ციკლი:
განვიხილოთ for ციკლი, რომლის სინტაქაქსიც გამოიყურება შემდეგნაირად:
for (გამოსახულება 1; გამოსახულება 2; გამოსახულება 3) {
// კოდის ბლოკი, რომელიც უნდა შესრულდეს
}
გავარჩიოთ ზემოთ მოყვანილი მაგალითი:
{ } ფიგურულ ფრჩხილებში არსებული კოდი გაეშვება.მოვიყვანოთ მაგალითი, რომლის დროსაც დავბეჭდავთ რიცხვებს 0-დან 5-მდე:
#include <stdio.h>
int main() {
for (int i = 0; i < 5; i++) {
printf("i - %d\n", i);
}
return 0;
}
int ტიპის i ცვლადი, რომელსაც ენიჭება 0 მნიშნველობაi ნაკლები იქნება 5-ზე ციკლის ბლოკში { } ჩაწერილი კოდი შესრულდება, ანუ printf("i - %d\n", i)i-ის მნიშნველობას 1-ით, მას შემდეგ რაც ციკლის ბლოკში არსებული კოდი შესრულდება.for ციკლისგან განსხვავებით while ციკლს აქვს მხოლოდ ერთი გამოსახულება, რომლის სინტაქსიც გამოიყურება შემდეგნაირად:
while (გამოსახულება 1) {
// კოდი, რომელიც შესრულდება
}
გამოსახულება 1 - წარმოადგენს პირობას, რომელიც წარმოადგენს პირობას, რომლის ჭეშმარიტების შემთხვევაში შერსრულდება while ციკლის ბლოკში არსებული კოდი.
მეტი თვალსაჩინოებისთვის დავბეჭდოთ 0-დან 5-მდე რიცხვები, ანუ იგივე რაც for ციკლის შემთხვევაში გავაკეთეთ.
#include <stdio.h>
int main() {
int i = 0;
while (i < 5) {
printf("i - %d\n", i);
i++;
}
return 0;
}
არსებულ მაგალითს თუ დავაკვირდებით, დავინახავთ, რომ i ცვლადი აღწერილია while ციკლის გარეთ, ხოლო i < 5 - პირობის შემოწმების შემდეგ, შესრულდება ციკლის ბლოკში არსებული კოდი, ხოლო შემდეგ i-ს ვზრდით 1-ით.
პ.ს. აუცილებელია i-ის გაზრდა რადგან თავიდან ავიცილოთ ე.წ. ჩაციკვლა.
do while ციკლი მუშაობს თითქმის ისე, როგორც while, მაგრამ ერთი მნიშვნელოვანი განსხვავებით:
do while ციკლი მინიმუმ ერთხელ მაინც ასრულებს კოდის ბლოკს, რადგან პირობა მოწმდება ბოლოს და არა დასაწყისში.
მისი სინტაქსი გამოიყურება შემდეგნაირად:
do {
// კოდი, რომელიც შესრულდება
} while (გამოსახულება 1);
განვიხილოთ სინტაქსი:
do { } — შეიცავს კოდის ბლოკს, რომელიც შესრულდება.while (გამოსახულება 1); — წარმოადგენს პირობას, რომელიც შემოწმდება მას შემდეგ, რაც კოდის ბლოკი ერთხელ მაინც შესრულდება.თუ პირობა ჭეშმარიტია → ციკლი გრძელდება
თუ პირობა მცდარია → ციკლი ჩერდება
#include <stdio.h>
int main() {
int i = 0;
do {
printf("i - %d\n", i);
i++;
} while (i < 5);
return 0;
}
გავარჩიოთ მაგალითი:
i არის 0do ბლოკში და ბეჭდავს i - 0i++ → i ხდება 1i < 5თუ პირობა ჭეშმარიტია → ციკლი ისევ ბრუნდება do ბლოკში
თუ პირობა მცდარია → ციკლი სრულდება.
#include <stdio.h>
int main() {
int i = 10;
do {
printf("i - %d\n", i);
i++;
} while (i < 5);
return 0;
}
გავარჩიოთ მაგალითი:
i = 10i - 10i-ს 1-ით → ხდება 11i < 5პირობა მცდარია, რადგან 11 < 5 არ არის.
კოდი ერთხელ მაინც შესრულდა, რადგან do while-ში პირობა ბოლოში მოწმდება.
შეისწავლეთ ვებდეველოპმენტის ენები სრულიად უფასოდ, ისეთები როგორებიცაა Javascript, HTML, CSS და კიდევ სხვა მრავალი ენა











ქვემოთ მოცემულია უახლესი 3 ბლოგი პროგრამირების თემატიკასთან დაკავშირებით