Definite Loop vs Indefinite Loop
მარყუჟი არის კოდის ბლოკი, რომელიც მეორდება განსაზღვრული რაოდენობის ჯერ ან სანამ რაიმე პირობა დაკმაყოფილდება. განსაზღვრული ციკლი არის ციკლი, რომელშიც წინასწარ არის ცნობილი ციკლში შესვლამდე, რამდენჯერ უნდა შესრულდეს. განუსაზღვრელი მარყუჟში, რამდენჯერ უნდა შესრულდეს, წინასწარ არ არის ცნობილი და ის უნდა შესრულდეს, სანამ რაიმე პირობა არ დაკმაყოფილდება.
რა არის განსაზღვრული მარყუჟი?
განსაზღვრული ციკლი არის ციკლი, რომელშიც ციკლში შესვლამდე წინასწარ არის ცნობილი მისი განხორციელების რაოდენობა.გამეორებების რაოდენობა, რომლის გამეორებასაც აპირებს, როგორც წესი, მოცემულია მთელი რიცხვის ცვლადის მეშვეობით. ზოგადად, for loops ითვლება განსაზღვრულ მარყუჟებად. ქვემოთ მოცემულია გარკვეული მარყუჟის მაგალითი, რომელიც განხორციელდა for loop-ის გამოყენებით (ჯავა პროგრამირების ენაზე).
-ისთვის (int i=0; i < num; i++)
{
// for loop
}
ზემოხსენებული ციკლი შეასრულებს თავის სხეულს რამდენჯერმე, რომელიც მოცემულია num ცვლადით. ეს შეიძლება განისაზღვროს i ცვლადის საწყისი მნიშვნელობიდან და მარყუჟის მდგომარეობიდან.
While მარყუჟების გამოყენება ასევე შესაძლებელია გარკვეული მარყუჟების განსახორციელებლად, როგორც ეს ნაჩვენებია ქვემოთ (ჯავაში).
int i=0;
ხოლო (i<num)
{
//მარყუჟის სხეული
i++;
}
მიუხედავად იმისა, რომ ეს იყენებს while მარყუჟს, ეს ასევე არის გარკვეული ციკლი, რადგან წინასწარ ცნობილია, რომ ციკლი განახორციელებს რაოდენობის ჯერების შესრულებას, რომელიც მოცემულია num ცვლადით.
რა არის განუსაზღვრელი ციკლი?
განუსაზღვრელი მარყუჟში, რამდენი ჯერ უნდა შესრულდეს, წინასწარ უცნობია. როგორც წესი, განუსაზღვრელი ციკლი შესრულდება მანამ, სანამ გარკვეული პირობა არ დაკმაყოფილდება. ხოლო მარყუჟები და do-while მარყუჟები ჩვეულებრივ გამოიყენება განუსაზღვრელი მარყუჟების განსახორციელებლად. მიუხედავად იმისა, რომ არ არსებობს კონკრეტული მიზეზი, რომ არ გამოვიყენოთ for მარყუჟები განუსაზღვრელი მარყუჟების ასაგებად, განუსაზღვრელი მარყუჟების ორგანიზება შეიძლება სწორად იყოს გამოყენებული while მარყუჟების გამოყენებით. ზოგიერთი ჩვეულებრივი მაგალითი, რომელიც დაგჭირდებათ განუსაზღვრელი მარყუჟების განსახორციელებლად, არის შეყვანის მოთხოვნა, სანამ მომხმარებელი არ ჩასვამს დადებით რიცხვს, პაროლის კითხვას, სანამ მომხმარებელი ზედიზედ ორჯერ არ ჩასვამს იმავე პაროლს და ა.შ.
რა განსხვავებაა განსაზღვრულ მარყუჟსა და განუსაზღვრელ მარყუჟს შორის?
განსაზღვრული ციკლი არის ციკლი, რომელშიც წინასწარ არის ცნობილი ციკლში შესვლამდე მისი განხორციელების რაოდენობა, ხოლო განუსაზღვრელი ციკლი შესრულებულია მანამ, სანამ რომელიმე პირობა დაკმაყოფილდება და რამდენჯერ გადის. შესრულება წინასწარ არ არის ცნობილი.ხშირად, გარკვეული მარყუჟები ხორციელდება for loop-ების გამოყენებით, ხოლო განუსაზღვრელი მარყუჟები ხორციელდება while მარყუჟების და do-while მარყუჟების გამოყენებით. მაგრამ არ არსებობს თეორიული მიზეზი იმისა, რომ არ გამოვიყენოთ for მარყუჟები განუსაზღვრელი მარყუჟებისთვის და ხოლო მარყუჟები განსაზღვრული მარყუჟებისთვის. მაგრამ განუსაზღვრელი მარყუჟები შეიძლება კარგად იყოს ორგანიზებული while მარყუჟებით, ხოლო განსაზღვრული მარყუჟები შეიძლება იყოს კარგად ორგანიზებული for მარყუჟებით.