русс | укр

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

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


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


Оператори переходу


Дата додавання: 2014-04-22; переглядів: 3040.


В мові С++ реалізовано чотири оператори переходу: goto, break, continue, return. Всі вони змінюють послідовний порядок виконання операторів і передають управління не наступному, а певному встановленому оператору програми.

Оператор goto передає управління іншому оператору програми, позначеному заданою міткою. Його синтаксис такий:

 

goto мітка;

/* оператори програми */

мітка: оператор

 

Міткою у мові С++ може бути довільний ідентифікатор, який не збігається з іншими ідентифікаторами програми. Мітка відокремлюється від оператора, який вона позначає, двокрапкою.

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

Знайдемо машинний нуль, тобто числове значення, менше якого неможливо задати точність алгоритму.

 

#include <iostream>

using namespace std;

int main() {

double b = 1.;

M: b /= 2;

if ( b + 1 > 1 ) goto M;

cout << b << endl; // 1.11022e-16

}

 

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

Оператор переходу continue може виконуватися тільки в тілі операторів циклу. Його призначення – перервати поточне виконання операторів тіла циклу і перейти до нової ітерації циклу. При цьому всі оператори тіла циклу, записані після оператора continue, пропускаються. Якщо continue виконується в операторі for, то відразу після нього обчислюється вираз ітерації, а потім перевіряється умова виконання циклу. Якщо continue виконується всередині циклів while i do while, то відразу відбувається перехід на наступну перевірку умови виконання циклу.

Знайдемо кількість чисел, які діляться без залишку на 7 в інтервалі від 1 до 100.

 

#include <iostream>

using namespace std;

int main() {

int i, n;

for ( i = 1, n = 0; i <= 100; ++i ) {

if ( i % 7 ) continue;

n++;

}

cout << n << endl;

}

 

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

 

return; // без повернення значення

return вираз; // зі значенням, що буде повернене

 

Перша форма застосовується в функціях, які не повертають значення – такі функції мають тип void. Друга форма запису застосовується, коли функція повинна повернути значення певного типу. В цьому випадку вираз задає значення, яке повертає функція. Отримане значення передається в точку виклику функції.

Функція main починає і закінчує роботу всієї програми. Тому виконання оператора return всередині функції main призводить до завершення роботи програми.


<== попередня лекція | наступна лекція ==>
Цикл з постумовою. Оператор do while | Використання псевдовипадкових чисел


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