русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Break і continue


Дата додавання: 2014-11-28; переглядів: 821.


Часом зручно мати можливість вийти з циклу інакше, ніж шляхом тестування умови зверху або внизу. Саме твердження break забезпечує передчасний вихід із for, while або do-циклів, так само як і у випадку зі switch. Вираз break змушує найближчий цикл або switch, у якому він знаходиться, завершитись негайно.

Наступна функція, яку ми назвали trim, вилучає кінцеві пробіли, кроки табуляції та символи нового рядка в ланцюжкові, використовуючи break для виходу з циклу, як тільки знайдено перший знак, що не є ні пробілом, ні знаком табуляції, ні символом нового рядка.

/* trim: видаляє хвостові пробіли, табуляцію і символи *

* нового рядка */

int trim(char s[])

{

int n;

 

for (n = strlen(s)-1; n >= 0; n--)

if (s[n] != ' ' && s[n] != '\t' && s[n] != '\n')

break;

s[n+1] = '\0';

return n;

}

strlen повертає довжину ланцюжка. Цикл for починає з кінця ланцюжка і перевіряє у зворотньому напрямку, шукаючи перший знак, що не являється пробілом, табуляцією або символом нового рядка. Цикл перерветься, коли один з них буде знайдено або, коли n стане від'ємним (тобто, коли весь ланцюжок пройде перевірку). Вам слід перевірити, чи цей цикл веде себе правильно, навіть коли ланцюжок порожній або містить тільки символи пропуску.

Оператор continue — споріднений з break, але не так часто використовується. Він зумовлює початок наступної ітерації оточуючого циклу for, while або do. У випадку while і do, тестова частина виконується негайно; у випадку for, керування передається етапові приросту. Твердження continue вживається тільки з циклами, а не switch-конструкціями. Операторcontinue всередині switch, розміщеному в циклі, спричинить наступну ітерацію циклу.

Як приклад, наступний фрагмент коду обробляє тільки додатні елементи масиву a, пропускаючи від'ємні.

for (i = 0; i < n; i++) {

if (a[i] < 0) /* пропустити від'ємні елементи */

continue;

... /* обробити додатні елементи */

}

Твердження з continue часто використовуються, коли наступна частина циклу занадто складна, тож перевірка протилежної умови та додатковий відступ коду вправо гніздить програму занадто глибоко.


<== попередня лекція | наступна лекція ==>
Цикли do-while | Goto та мітки


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн