Программирование >>  Программирование с использованием ajax 

1 ... 40 41 42 [ 43 ] 44 45 46 ... 396


В случае функции консольного приложения рассматриваемого здесь типа в коде это будет выглядеть так:

static <возвращаемый тип> <имя функции> ()

return <возвращаемое значение> ;

Единственным ограничением здесь является то, что значение в <возвращаемое значение> должно обязательно либо быть значением типа <возвращаемый тип>, либо неявно преобразовываться в значение такого типа. Однако в качестве <возвращаемый ТИПУ может указываться какой угодно тип, включая и продемонстрированные более сложные типы. Например, все может выглядеть очень просто:

static double GetValO {

return 3.2;

Тем не менее, возвращаемые значения обычно являются результатом какой-то осуществляемой функцией обработки; показанного выше можно было бы легко добиться и с помощью переменной const.

При достижении оператора return управление выполнением программы сразу же возвращается вызывающему коду. Никакие строки кода после этого оператора больше не выполняются, хотя это вовсе не означает, что операторы return могут размещаться только в последней строке тела функции. Оператор return можно использовать и ранее в коде, например, после выполнения какой-то логики ветвления. Размещение return в цикле for, блоке if или любой другой структуре будет приводить к немедленному выходу из структуры и завершению выполнения функции, как показано ниже:

static double GetValO {

double checkVal;

CheckVal присваивается значение посредством определенной логики (которая здесь не показана) . if (CheckVal < 5) return 4.7;

return 3.2;

Здесь возвращаться может одно из двух значений, в зависимости от значения checkVal. Единственным ограничением в данном случае является то, что оператор return должен обрабатываться перед достижением закрывающей фигурной скобки } в функции. Следующий код недопустим:

static double GetValO {

double CheckVal;

CheckVal присваивается значение посредством определенной логики, if (CheckVal < 5) return 4.7;

Здесь получается, что в случае, если значение checkVal >= 5, не будет выполнено никакого оператора return, что является недопустимым. Все пути обработки должны обязательно приводить к оператору return. В большинстве случаев компилятор будет распознавать эту проблему, и возвращать ошибку типа not all code paths return a value (не все пути кода возвращают значение).



И, наконец, последнее: оператор return может применяться в функциях, которые объявляются с использованием ключевого слова void (т.е. не имеют возвращаемого значения). Такие функции будут просто завершаться.

При использовании оператора return подобным образом указание возвращаемого значения между ключевым словом return и следующим за ним символом точки с запятой считается ошибкой.

Параметры

Когда функция должна принимать параметры, должно быть указано следующее:

□ список принимаемых функцией параметров вместе с их типами в определении этой функции;

□ соответствующий список параметров в каждом вызове этой функции.

Это подразумевает использование показанного ниже кода, в котором может присутствовать любое количество параметров, при этом для каждого из них должен указываться тип и имя:

static <возвращаемый тип> <имя функции> ( <тип параметра> <имя параметра>, . ..)

return <возвращаемое значение>;

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

static double Product(double paraml, double param2) {

return paraml * param2;

Более сложный пример приведен в следующем практическом занятии.

а1стическов занятие Обмен данными с функцией (часть 1)

1. Создайте новое консольное приложение по имени Ch06Ex02 и сохраните его в каталоге C:\BegVCSharp\Chapter06.

2. Добавьте в файл Program, cs следующий код:

class Program {

static int MaxValue (int [ ] intArray) {

int maxVal = intArray[0];

for (int i = 1; i < intArray.Length; i++)

if (intArray[i] > maxVal) maxVal = intArray [i];

return maxVal;



static void Main(string[] args) {

int[] myArray = (1, 8, 3, 6, 2, 5, 9, 3, 0, 2} ; int maxVal = MaxValue(myArray);

Console.WriteLine( The maximum value in myArray is {0} , maxVal);

Вывод максимального значения в массиве myArray

Console.ReadKey();

3. Запустите приложение. На рис. 6.2 показан результат, который должен получиться.

I rilt:/WC:/BegVCSherp :hapt rOe/ChO6Ex02/..

Рис. 6.2. Приложение Ch06Ex02 в действии

Описание полученных результатов

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

static int MaxValue(int [ ] intArray) (

int maxVal = intArray[0];

for (int i = 1; i < intArray.Length; i++)

if (intArray[i] > maxVal) maxVal = intArray [i];

return maxVal;

Здесь видно, что эта функция называется MaxValue () и имеет один определенный параметр - массив типа int под названием intArray, а также возвращаемый тип int. Процесс вычисления максимального значения выглядит очень просто. Сначала локальная переменная типа int по имени maxVal инициализируется первым значением из массива, после чего это значение сравнивается с каждым из остальных элементов в массиве. Если в каком-то из элементов содержится более высокое значение, чем в maxVal, тогда оно делается текущим значением maxVal. В результате по завершении цикла maxVal содержит максимальное значение из имеющихся в массиве и возвращается с помощью оператора return.

В коде Main () объявляется и инициализируется простой массив целых чисел (int), который будет использоваться с функцией MaxValue ():

int[] myArray = {1, 8, 3, 6, 2, 5, 9, 3, О, 2};

Вызов MaxValue () применяется для присваивания значения int-переменной maxVal: int maxVal = MaxValue(myArray);

Далее это значения выводится на экран с помощью Console.WriteLine (): Console.WriteLine( The maximum value in myArray is {0} , maxVal);



1 ... 40 41 42 [ 43 ] 44 45 46 ... 396

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика