пятница, 18 марта 2016 г.

Функции: возвращаемое значение и return.

  В предыдущем уроке мы написали функцию, что ничего не возвращает и ничего не принимает в качестве параметров. Это говорит о следующем: у вызываемой функции нет связи с вызывающим ее кодом. Что, если в функции произведены какие-то сложные расчеты? Нам бы хотелось заполучить их результат! Для того, чтобы получить результат работы функции, надо указать тип данных этого самого результата(раньше мы использовали void, чтобы указать, что никакого результата попросту нет). Напишем функцию для ввода числа с клавиатуры, результатом работы которой и будет введенное число:

#include <iostream>

int numberInput()

{
  std::cout << "Please, enter integer number: ";
  int number;
  std::cin >> number;
  return number;
}

int main()

{

// ...


  Вместо void я указал int как тип возвращаемого значения. Далее, имя функции и пустой список параметров. Внутри функции я объявил переменную, в которую был произведен ввод числа с клавиатуры. И самое интересное: "return number;". Ключевое слово "return" обеспечивает выход из функции. Но кроме самого выхода, "return" возвращает вызывающему коду то, что стоит после этого ключевого слова. В нашем случае это значение переменной "number". Как же "забрать" возвращаемое значение? Ведь вызов функции из предыдущего занятия ничем не отличается от вызова новоиспеченной:


int main()

{
  printGreeting();
  numberInput();

  system("pause");

  return 0;
}

  Секрет тут в том, что большинство мест, где Вы раньше с легкостью использовали обычную переменную, подходят и для использования возвращаемого значения функции. Например:


int main()
{
  int x = numberInput();
  int y = x * numberInput();
  std::cout << numberInput() << std::endl;
  if( numberInput() == 10 )
  {
    std::cout "You entered 10" << std::endl;
  }

  system("pause");

  return 0;
}

  Сначала я сохранил результат выполнения функции "numberInput" в переменную "x". Затем использовал результат этой же функции в выражении. Далее, вывел число введенное с клавиатуры на экран. И наконец, использовал его в условии.


  Самое время приоткрыть занавесу тайны самой маленькой программы на С++:

int main()

{
  return 0;
}

  Как Вы уже могли догадаться, "main" это тоже функция. В исполняемой программе на С++ должна быть одна функция с именем "main", возвращающая 0, если программа завершилась корректно или же код ошибки, если "что-то пошло не так". Эту функцию вызовет сама исполняемая среда и с нее начнется выполнение Вашей программы. Ничего сложного, не так ведь?

Комментариев нет:

Отправить комментарий