შესვლა

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

break და continue

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

რას ისწავლი

  • როგორ შეწყვიტო ციკლი ვადაზე ადრე break-ით
  • როგორ გამოტოვო ერთი იტერაცია continue-თი
  • რატომ შეიძლება continue while-ში უსასრულო ციკლი გახდეს

break: ვიპოვე, ვჩერდები

ზოგჯერ ციკლის ბოლომდე მისვლა საჭირო არ არის. თუ რაღაცას ეძებ და იპოვე, დანარჩენის შემოწმება დროის კარგვაა. break ციკლს მაშინვე წყვეტს და პროგრამა }-ის შემდეგ მდგომ კოდზე გადადის.

იპოვე პირველი რიცხვი 50-ის შემდეგ, რომელიც 7-ზე იყოფა:

JavaScript
for (let n = 51; n <= 100; n++) {
  if (n % 7 === 0) {
    console.log("ვიპოვე:", n);
    break;
  }
}
  1. ციკლი იწყება 51-დან და ყოველ რიცხვზე ამოწმებს, ნაშთი ნულია თუ არა.
  2. 51-დან 55-მდე ნაშთი ნული არ არის, ამიტომ არაფერი ხდება.
  3. 56-ზე ნაშთი ნულია: იბეჭდება ვიპოვე: 56 და break ციკლს წყვეტს.

break-ის გარეშე ციკლი გააგრძელებდა და დაბეჭდავდა 63-ს, 70-ს და ასე შემდეგ 98-მდე. ეს სიტყვა უკვე იცი switch-იდან: იქაც ის „გამოდი აქედან“-ს ნიშნავს.

continue: ეს გამოტოვე, შემდეგზე გადადი

continue ციკლს არ წყვეტს. ის მხოლოდ მიმდინარე იტერაციის დარჩენილ ნაწილს გამოტოვებს და პირდაპირ შემდეგზე გადადის. მოსახერხებელია, როცა ზოგიერთი შემთხვევა არ გაინტერესებს:

JavaScript
for (let i = 1; i <= 10; i++) {
  if (i % 2 === 0) {
    continue;
  }
  console.log(i);
}

ლუწ რიცხვებზე continue გამოტოვებს console.log-ს, ამიტომ იბეჭდება მხოლოდ კენტი: 1, 3, 5, 7, 9.

ეს ამოცანა continue-ს გარეშეც შეიძლება ამოიხსნას: if (i % 2 !== 0) { console.log(i); }. continue განსაკუთრებით სასარგებლოა, როცა ბლოკი გრძელია და თავშივე გინდა „ზედმეტი“ შემთხვევების მოცილება, რომ დანარჩენი კოდი ღრმად ჩადგმული არ გახდეს.

ხაფანგი while-ში

for-ში ბიჯი (i++) ფრჩხილებშია და continue-ს შემდეგაც სრულდება. while-ში კი ბიჯს თვითონ წერ ბლოკში, და თუ ის continue-ს შემდეგაა, გამოტოვდება:

JavaScript
let i = 0;
while (i < 10) {
  if (i === 3) {
    continue;   // i++ აღარ შესრულდება!
  }
  i++;
}

როცა i 3-ს უდრის, continue ციკლის თავში ბრუნდება, i კი 3-ად რჩება. ეს უსასრულო ციკლია. while-ში ბიჯი continue-მდე უნდა გაზარდო, ან ასეთ შემთხვევაში for აირჩიო.

სცადე თავად

გაუშვი, მერე შეცვალე: იპოვე პირველი რიცხვი 100-ის შემდეგ, რომელიც 13-ზე იყოფა.

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

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

  • continue ბიჯამდე while-ში. უსასრულო ციკლის კლასიკური მიზეზი. ბიჯი continue-მდე გადაიტანე.
  • break ციკლის გარეთ. break მხოლოდ ციკლში ან switch-ში მუშაობს. სხვაგან შეცდომას იძლევა.
  • ზედმეტი break. თუ ციკლის პირობა თავისით ჩერდება სწორ დროს, break საჭირო არ არის. ის გამოიყენე მაშინ, როცა გაჩერება შიგნით აღმოჩენილ რამეზეა დამოკიდებული.

სავარჯიშო

დაბეჭდე რიცხვები 1-დან 20-მდე, გარდა 3-ის ჯერადებისა (3, 6, 9…). გამოიყენე continue. პირველი დაბეჭდილი რიცხვები უნდა იყოს 1, 2, 4, 5, 7.

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

3-ის ჯერადია რიცხვი, რომლისთვისაც i % 3 === 0.

✅ ამოხსნის ნახვა
JavaScript
for (let i = 1; i <= 20; i++) {
  if (i % 3 === 0) {
    continue;
  }
  console.log(i);
}

მინი-ქვიზი

1რას აკეთებს break ციკლში?

2რას დაბეჭდავს? for (let i = 1; i <= 5; i++) { if (i === 3) continue; console.log(i); }

3რატომ იქცევა while-ში continue ზოგჯერ უსასრულო ციკლად?

შეჯამება

  • break ციკლს მაშინვე წყვეტს: მოსახერხებელია ძებნისას.
  • continue მიმდინარე იტერაციის დარჩენილ ნაწილს გამოტოვებს და შემდეგზე გადადის.
  • while-ში ბიჯი continue-მდე გაზარდე, თორემ ციკლი შეიძლება უსასრულო გახდეს.
  • ორივე მხოლოდ ციკლის შიგნით მუშაობს (break switch-შიც).
📝 ჩემი შენიშვნა