§ 5. Аператар цыкла

5.4. Аператары break і continue

Дастаткова часта пры выкарыстанні цыклаў і амаль заўсёды пры выкарыстанні аператара switch узнікае неабходнасць перапыніць выкананне цела цыкла ці каманды множнага выбару. Для гэтага выкарыстоўваецца каманда break. Выкарыстанне break для перарывання каманды switch разглядалася ў § 4.

Калі аператар break сустракаецца ў целе цыкла, то цыкл спыняе сваю работу, а праграма працягвае выконвацца з радка, наступнага за цыклам.

Прыклад 5.7. Напісаць праграму, якая выведзе толькі тыя лікі табліцы з прыкладу 5.6, якія знаходзяцца не вышэй за галоўную дыяганаль [1].

Этапы выканання задання

I. Вынік праграмы не залежыць ад зыходных даных.

II. Табліца з лікамі.

III. Алгарытм рашэння задачы.

1. Для вываду такой табліцы можна выкарыстоўваць два ўкладзеныя цыклы. Першы будзе вызначаць дзясяткі ліку, а другі — адзінкі. 
2. Другі цыкл будзем перарываць з дапамогай каманды break, калі колькасць адзінак роўна колькасці дзясяткаў. 
3. Вывад значэнняў ажыццяўляецца ў цыкле.
4. Пасля завяршэння вываду аднаго радка табліцы неабходна перавесці курсор на новы радок.

IV. Апісанне пераменных: i, j – int.

Аператар continue дазваляе прапусціць частку аператараў цела цыкла, якія стаяць пасля яго, і пачаць новую ітэрацыю. Гэта можна выкарыстоўваць у тых выпадках, калі трэба завяршыць бягучую ітэрацыю загадзя.

Прыклад 5.8. Напісаць праграму, якая выведзе ўсе лікі табліцы з прыкладу 5.6, выключаючы лікі, якія заканчваюцца на 5 ці 7.

Этапы выканання задання

I. Вынік праграмы не залежыць ад зыходных даных.

II. Табліца з лікамі.

III. Алгарытм рашэння задачы.

1. Для вываду такой табліцы можна выкарыстоўваць два ўкладзеныя цыклы. Першы будзе вызначаць дзясяткі ліку, а другі — адзінкі.
2. Калі значэнне параметру другога цыкла роўна 5 ці 7, то будзем прапускаць каманды вываду
.
3. Вывад значэнняў ажыццяўляецца ў цыкле
.
4. Пасля завяршэння вываду аднаго радка табліцы неабходна перавесці курсор на новы радок.

IV. Апісанне пераменных: i, j – int.


[1] Галоўная дыяганаль у табліцы лікаў (матрыцы) — усе такія лікі, у якіх нумар радка роўны нумару слупка. Нумарацыя пачынаецца з верхняга левага вугла..

С помощью оператора break можно прервать бесконечный цикл. Для этого в тело цикла добавляется условие, при выполнении которого сработает оператор break, и цикл завершит работу. Например, если программа должна работать с двузначными числами, то следующий бесконечный цикл прервется только тогда, когда пользователь введет двузначное число.

do {

  cin >> n;

  if (> 9 && n < 100)

    break;

  else {

    cout << "Число не двузначное! ";

    cout << "Введите двузначное" << endl;

  }

}

while (true);

Пример 5.7.

V. Программа:

#include <iostream>

 

using namespace std;

 

int main()

{

  for (int i = 1; i < 10; i++) {

    for (int j = 0; j < 10; j++){

      if (>= i) break;

      cout << i * 10 + j << " ";

    }

    cout << endl;

  }

  return 0;

}


   VI. Тестирование.

    Многие программисты считают, что операторы break и continue нарушают структурность программного кода, и предпочитают обходится без них. Эти операторы всегда можно заменить операторами, которые относятся к основным алгоритмическим конструкциям. Однако разумное использование операторов break и continue может улучшить понятность циклов в программе.

    При вложенных циклах действия операторов break и continue распространяется только на тот цикл, в котором они содержатся.

    Пример 5.8.

    V. Программа:

    #include <iostream>

     

    using namespace std;

     

    int main()

    {

      for (int i = 1; i < 10; i++) {

        for (int j = 0; j < 10; j++){

          if (== 5 || j == 7)

            continue;

          cout << i * 10 + j << " ";

        }

        cout << endl;

      }

      return 0;

    }

     VI. Тестирование.