ციკლები

სწვალა

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

for
for..in
while
do..while
ციკლი for

ციკლს for აქვს შემდეგი სახე:

for ([მრიცხველის ინიციალიზაცია]; [პირობა]; [მრიცხველის შეცვლა]) {
// მოქმედებები
}

მაგალითად, გამოვიყენოთ ციკლი მასივის ელემენტების გადასარჩევად:

var people = [“Tom”, “Alice”, “Bob”, “Sam”];
for(var i = 0; i<people.length; i++){
document.write(people[i] + “</br>”);
}

ციკლის პირველი ნაწილი – var i = 0; ახდენს მრიცხველის (ცვლადი i) ინიციალიზაციას. ციკლის დაწყების წინ მისი მნიშვნელობა იქნება 0. მეორე ნაწილი წარმოადგენს პირობას, რომლის შესრულებისას სრულდება ციკლი. მოცემულ შემთხვევაში, ციკლი შესრულდება მანამ, სანამ i-ს მნიშვნელობა არ მიარჭევს მასივის სიგრძეს. მასივის სიგრძეს ვღებულობთ length თვისების მეშვეობით: people.length. ციკლის მესამე ნაწილში ხდება მრიცხველის გაზრდა ერთი ერთეულით.

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

people[i] გამოსახულების მეშვეობით ჩვენ ვღებულობთ მასივის ელემენტს ბრაუზერში მისი შემდგომი გამოტანისთვის.

აუცილებელი არაა მრიცხველი აუცილებლად გავზარდოთ ერთი ერთეულით. შესაძლებელია მასზე სხვა მოქმედებების შესრულება. მაგალითად, შემდეგ მაგალითში ციკლში მრიცხველს საწყის მნიშვნელობად მივანიჭოთ მასივის სიგრძეს მინუს ერთი, ხოლო მრიცხველი ყოველი იტერაციის შემდეგ შევამციროთ 1-ით, სანამ არ გახდება 0-ის ტოლი:

var people = [“Tom”, “Alice”, “Bob”, “Sam”];
for(var i = people.length – 1; i >= 0; i–){
document.write(people[i] + “</br>”);
}

ამ მაგალითში მასივის ელემენტები გამოვა საწინააღმდეგო თნმიმდევრობით – ბოლო ელემენტიდან პირველამდე.

ციკლი for..in

ციკლი for..in განკუთვნილია მასივის ელემენტების გადასარჩევად. იგი განისაზღვრება შემდეგნაირად:

for (ინდექსი in მასივი) {
// მოქმედებები
}

მაგალითად:

var people = [“Tom”, “Alice”, “Bob”, “Sam”];
for(var index in people){
document.write(people[index] + “</br>”);
}

ციკლი while

ციკლი while სრულდება მანამ, სანამ რაღაც პირობა სრულდება.მას აქვს შემდეგი სახე:

while(პირობა){
// მოქმედებები
}

გამოვიტანოთ ისევ მასივის ელემენტები:

var people = [“Tom”, “Alice”, “Bob”, “Sam”];
var index = 0;
while(index < people.length){
document.write(people[index] + “</br>”);
index++;
}

ციკლი შესრულდება მანამ, სანამ ცვლადი index არ გახდება მასივის სიგრძის ტოლი.

do..while

ციკლში do ჯერ სრულდება რაღაც მოქმედებები და შემდეგ მოწმდება პირობა while და სანამ ეს გამოსახულება ჭეშმარიტია, ციკლი გრძელდება. მაგალითად:

var x = 1;
do{
document.write(x * x + “</br>”);
x++;
}while(x < 10)

აქ ციკლი შესრულდება 9-ჯერ, სანამ x არ გახდება 10-ის ტოლი. ამასთან, ციკლი do..while-ის დროს ციკლი ერთხელ მაინც შესრულდება აუცილებლად, თუნდაც პირველივე ჯერზე პირობა while იყოს მცდარი.

ოპერატორები continue და break

ხანდახან საჭიროა ციკლიდან გამოსვლა მის დასრულებამდე. ამისთვის გამოიყენება ოპერატორი break:

var array = [ 1, 2, 3, 4, 5, 12, 17, 6, 7 ];
for (var i = 0; i < array.length; i++)
{
if (array[i] > 10)
break;
document.write(array[i] + “</br>”);
}

მოცემულ მაგალითში ციკლი სრულდება მანამ, სანამ არ შეხვდება ელემენტი, რომლის მნიშვნელობა მეტია 10-ზე:

თუ ჩვენ გვინდა უბრალოდ იტერაციის გამოტოვება და არა ციკლიდან გამოსვლა, უნდა გამოვიყენოთ ოპერატორი continue:

var array = [ 1, 2, 3, 4, 5, 12, 17, 6, 7 ];
for (var i = 0; i < array.length; i++)
{
if (array[i] > 10)
continue;
document.write(array[i] + “</br>”);
}

ამ შემთხვევაში, მასივის ის ელემენტი, რომლის მნიშვნელობაც მეტია 10-ზე, არ გამოვა ეკრანზე:

0Shares