Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб 6_Основы функции.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
257.54 Кб
Скачать

6.5. Использование предложения return

В предыдущих примерах возврат из функции в вызывающий код осуществлялся, когда в тексте функции встречалась закрывающая фигурная скобка. Хотя для многих функций это вполне допустимо, в ряде случаев такой метод возврата работать не будет. Часто требуется явным образом указать, как и когда функция должна завершить свою работу. Для этого используется предложение return.

Предложение return имеет две формы: одна позволяет вернуть значение, другая не делает этого. Мы начнем с варианта предложения return, который не возвращает значения. Если функция имеет тип возврата void (т. е. функция не возвращает никакого значения), используется следующая форма предложения return:

return;

Если в тексте функции встречается предложение return, выполнение немедленно возвращается в вызывающий код. Любые строки, остающиеся в функции, игнорируются. Рассмотрим, например, следующую программу. Функция power(), включенная в программу, выводит результат возведения целого числа в целую положительную степень. Если показатель степени отрицателен, предложение return заставляет функцию завершиться, не пытаясь вычислить результат.

#include <iostream>

using namespace std;

#include <conio>

void power(int base, int exp);

int main()

{

power(10, 2);

power(10, -2);

getch();

return 0;

}

// Возведение целого числа в целую положительную степень,

void power(int base, int exp)

{

if(exp < 0) return; // He умею работать с отрицательными показателями.

for( int i=1 ; exp; exp--) i = base * i;

cout << "Ответ: " << i;

}

Вот вывод программы:

Ответ: 100

Если exp отрицательно (как это имеет место во втором вызове), power() возвращается, обходя весь остаток функции.

Возвращаемые значения

Функция может вернуть значение в вызывающий ее код. Возвращаемое значение представляет собой способ получить информацию из функции. Для возврата значения следует использовать второй вариант предложения return:

return значение;

Здесь значение — это то значение, которое возвращается функцией в вызывающий ее код. Эта форма предложения return может использоваться только с функциями, не возвращающими void.

Функция, возвращающая значение, должна задать тип этого значения. Тип возврата должен быть совместим с типом данного, используемого в предложении return. Если это не так, во время компиляции будет зафиксирована ошибка. Для иллюстрации работы с функциями, возвращающими значения, перепишем функцию bох() так, как это показано ниже. В этом варианте bох() возвращает вычисленный объем. Обратите внимание на то, что помещение функции с правой стороны знака равенства присваивает возвращаемое значение переменной.

// Возврат значения.

#include <iostream>

using namespace std;

int box(int length, int width, int height); // вернем объем

int main()

{

int answer;

answer = box(10, 11, 3); // присвоим возвращаемое значение

cout << "Объем равен " << answer;

return 0;

}

// Эта функция возвращает значение.

int box(int length, int width, int height)

{

return length * width * height ;//Вернем объем.

}

Вот вывод программы:

Объем равен 330

В этом примере bох() возвращает значение length * width * height c помощью предложения return. Это значение присваивается переменной answer. Другими словами, значение, возвращаемое предложением return становится значением функции bох() в вызывающей программе.

Поскольку функция bох() возвращает значение, ее объявление не предваряется ключевым словом void. Вместо этого bох() объявлена, как возвращающая значение типа int. Обратите внимание на то, что тип возвращаемого функцией значения указывается перед ее именем как в прототипе, так и в определении.

Разумеется, int не является единственным типом, который может возвращаться функцией. Например, в приведенной ниже программе функция bох() модифицирована так, что она принимает параметры типа double и возвращает значение типа double:

// Возврат значения типа double.

#include <iostream>

using namespace std;

// используем данные типа double

double box(double length, double width, double height);

int main ()

{

double answer;

answer = box(10.1, 11.2, 3.3); //присвоим возвращаемое значение

cout << "Объем равен " << answer;

return 0 ;

}

// Этот вариант box использует данные типа double,

doubie box(double length, double width, double height)

{

return length * width * height ;

}

Вот вывод этой программы:

Объем равен 373.296