Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Вызов функции

Лекция №23. Функции

Оператор продолжения continue

Оператор break

Оператор break даёт возможность выйти из операторов цикла for, while, do/while, а также из переключателя switch без проверки условия. Оператор break приводит к немедленному выходу из самого внутреннего охватывающего его цикла или из переключателя.

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

Пример:

Наличие оператора break позволяет использовать «бесконечные циклы». В ряде случаев весьма удобно записать заголовок цикла без всякого условия в виде:

For (;;),

а выход из цикла оформить с помощью операторов break.

 

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

 

3. Оператор безусловного перехода goto

 

Оператор перехода предназначен для безусловной передачи управления в заданную точку программы. Его выполнение заключается в передачи управления оператору, помеченному заданной меткой.

В качестве метки используется идентификатор. Метка отделяется от оператора, к которому она относится, двоеточием. Помеченный оператор должен находиться в пределах той же функции, что и оператор goto. Может быть помечен любой оператор, но никакие два разных оператора не должны иметь одинаковые метки (внутри одной и той же функции). Кроме того, один оператор может быть помечен несколькими метками.

Форма:

Goto <метка>; …

<метка>: <оператор>

 

План:

1. Вызов функции;

2. Прототипы функций.

 

 

Всякая задача может быть разбита на подзадачи, каждую из которых можно либо непосредственно представить в виде кода, либо разбить на ещё более мелкие подзадачи. Данный метод носит название пошагового уточнения (stepwise refinement). Функции в С++ служат для записи программного кода этих непосредственно решаемых подзадач. Такие функции используются другими функциями, и в конечном – функцией main() для решения исходной задачи.

Программа на С++ составляется из одной или более функций, одна из которых – main(). Выполнение программы всегда начинается с функции main(). Когда при выполнении программы встречается имя функции, происходит обращение к этой функции (она вызывается). То есть управление программой передаётся функции. После того как функция выполнила свою работу, управление возвращается в место, откуда функция была вызвана – в вызывающее окружение (calling environment).

Пример:

// позвоним, используя символ ‘\a’ (звуковой сигнал)

#include <iostream.h>

const char bell = ‘\a’;

void ring()

{

cout << bell;

}

int main ()

{

ring();

}

В С++ код, описывающий, что делает функция, называется определением функции (function definition). Формально это выглядит так:

Заголовок_функции

{

инструкции

}

Всё, что стоит перед первой фигурной скобкой, составляет заголовок определения функции, а то, что находится между фигурными скобками, является телом определения функции.

Заголовок функции – это:

Тип имя (список_объявлений_параметров)

Спецификация типа, стоящая пред именем функции, является возвращаемым типом. Он определяет тип значения, возвращаемого функцией (если оно вообще возвращается).

В определении функции ring() из предыдущего примера список параметров пуст, то есть объявлений параметров нет. Тело функции состоит из единственной инструкции. Поскольку функция не возвращает значение, возвращаемый тип этой функции – void. Синтаксически параметры – это идентификаторы, они могут использоваться внутри тела функции. Формальные параметры – это то, вместо чего будут подставлены фактические значения, предаваемые функции в момент её вызова. После вызова функции значение аргумента, соответствующее формальному параметру, используется в теле выполняемой функции. В С++ такие параметры являются вызываемые по значению (call-by-value). Когда применяется вызов по значению, переменные передаются функции как аргументы, их значения копируются в соответствующие параметры функции, а сами переменные не изменяются в вызывающем окружении. В сущности, вызываемые по значению параметры являются локальными в своей процедуре. Им могут передаваться выражения, значения которых присваиваются этим локальным переменным (параметрам).

Перепишем предыдущую программу так, чтобы у функции ring() появился формальный параметр, задающий количество звонков:

// несколько звонков

#include <iostream.h>

const char bell = ‘\a’;

void ring (int k)

{

int i;

for (i = 0; i < k; ++i)

cout << bell;

}

int main ()

{

int n;

cout << “\nвведите небольшое положительное целое: ”;

cin >> n;

ring(n);

}

 

Инструкция return

Инструкция return используется для двух целей. Когда она выполняется, управление программой немедленно передаётся обратно в вызывающее окружение. Кроме того, если за ключевым словом return следует какое-либо выражение, то его значение также передаётся в вызывающее окружение. Это значение должно допускать неявное преобразование к типу, указанному в заголовке определения функции. Инструкция return имеет одну из двух форм:

Return;

Return (выражение);

Скобки в выражении return не обязательны. Вычислим наименьшее из двух целых:

#include <iostream.h>

int min(int x, int y)

{

if (x < y) return x;

else return y;

}

int main()

{

int main()

{

int j, k, m;

cout << “введите два целых числа: ”;

cin >> j >> k;

m = min (j, k);

cout << ‘\n’ << m <<”наименьшее из” << j << “ и ” << k << endl;

}

 

<== предыдущая лекция | следующая лекция ==>
Оператор цикла while | Аргументы по умолчанию
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 357; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.