Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
програмування.docx
Скачиваний:
42
Добавлен:
05.03.2016
Размер:
1.55 Mб
Скачать

7. Оператор циклу while на мові Сі.

Оператор циклу while називається циклом з передумовою і має наступний формат:

while (вираз) тіло;

В якості виразу допускається використовувати будь-який вираз мови Сі, а як тіла будь-який оператор, в тому числі порожній або складової. Схема виконання оператора while наступна:

1. Обчислюється вираз.

2. Якщо вираз помилково, то виконання оператора while закінчується і виконується наступний по порядку оператор. Якщо вираз істинний, то виконується тіло оператора while.

3. Процес повторюється з пункту 1.

Цикл типу while є циклом з передумовою. Він використовується у випадку, коли, по-перше, не відома точна кількість повторів і, по-друге, при цьому немає необхідності, щоб цикл неодмінно був виконаний хоча б один раз. Цикл типу while має наступну форму запису:

while (вираз)

оператор;

В якості виразу зазвичай використовуються умовні вирази. В загальному випадку можна використовувати вирази довільного типу. На місці оператора може стояти простий оператор або сукупність операторів, об’єднаних у блок дужками {}.

Якщо вираз істинний (не рівний нулю), то тіло циклу виконується один раз, далі вираз перевіряється знову. Ітерації (перевірка умови та тіло циклу) виконуються до тих пір, поки вираз не стане хибним (рівним нулю).

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

Приклад 1. Цикл типу while.

Користувачу дається 10 спроб щоб вгадати задане  програмою число.

int i=1, rez=1;

while (i++<=10&&rez!=25)

{

cout<<"\nВведіть число:" ;

cin>>rez;

}

if (i==12)cout<<"\nBи не вгадали.";

else cout<<"\nВітаю! Ви вгадали число.";

В даному прикладі цикл виконується до тих пір, поки не вгадано число або не вичерпано кількість спроб.

8. Оператор циклу do на мові Сі

Оператор циклу do while називається оператором циклу з постусловіем і використовується в тих випадках, коли необхідно виконати тіло циклу хоча б один раз. Формат оператора має наступний вигляд:

do тіло while (вираз);

Схема виконання оператора do while:

1. Виконується тіло циклу (яке може бути складеним оператором).

2. Обчислюється вираз.

3. Якщо вираз помилково, то виконання оператора do while закінчується і виконується наступний по порядку оператор. Якщо вираз істинний, то виконання оператора триває з пункту 1.

Щоб перервати виконання циклу до того, як умова стане хибним, можна використовувати оператор break.

Оператори while і do while можуть бути вкладеними.

Приклад:

int i, j, k;

...

i = 0; j = 0; k = 0;

do {i + +;

j -;

while (a [k] <i) k + +;

}

while (i <30 & & j <-30);

9. Оператори return, break, continue на мові Сі.

Оператор return завершує виконання функції, в якій він заданий, і повертає управління в зухвалу функцію, в точку, безпосередньо наступну за викликом. Функція main передає управління операційній системі. Формат оператора:

return [вираз];

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

Якщо в якій-небудь функції відсутній оператор return, то передача управління в викликану функцію відбувається після виконання останнього оператора, що викликається. При цьому значення, що повертається не визначено. Якщо функція не повинна мати значення, що повертається, то її потрібно оголошувати з типом void.

Таким чином, використання оператора return необхідно або для негайного виходу з функції, або для передачі, що повертається.

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

Приклад 3. Використання оператора break.

Треба вгадати число з 10 спроб.

i=l;

while( i++<=10 )

{

cin>>rez;

if (rez==15) break;

cout<<"\nПощастить наступного разу.";

}

if ( i!=12 )  cout<<"\nBи вгадали!.";

В цьому прикладі завершення виконання циклу відбувається за допомогою оператора break.

Оператор continue може використовуватися тільки серед операторів тіла циклу. Цей оператор призводить до переходу до наступної ітерації без завершення поточної.

Приклад 4. Використання оператора continue.

Вводяться числа місяця для обробки. Необхідно здійснити перевірку коректності вводу. Число 31 буде кінцем обробки.

while(den!=31)

{

cin>>den;

if (den<1||den>31) continue;

… // Обробка числа den

}

…В даному прикладі неправильне введення значення призводить до пропуску частини ітерації, призначеної для обробки цього значення.