Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 56

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 50 51 52 53 54 55 < 56 > 57 58 59 60 61 62 .. 404 >> Следующая


Если функция должна обладать возвращаемым значением, то необходимо внести два изменения:

? В описании функцин вместо ключевого слова void указать тип возвращаемого значения.

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

static <воэвращлеиийТип> клняФухкцюо ()

<

return <903врлщаш*оеЗылчеиие>;

Единственным ограничением в данном случае является требование, гласящее, что <возврлщаемоеЗначение> должно иметь тип <возврадааыийТип> или же должна существовать возможность его неявного преобразования в этот тип. Вообще говоря, <яоэврацаемыЯтип> может быть любым, включая самые сложные типы из числа рассмотренных ранее.

В простейшем случае это может выглядеть следующим образом:

acetic double getval О {

return 3.3)

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

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

static double getValО

<

double checkval;

// присваивание переменной checkval некоторого значения,

// подученного я результате некоторых аычисл юй.

if (checkval < S) return 4.7;

return 3.2;

>

В данном случае будет возвращено одно из двух значений — в зависимости от значения переменной checkval.

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

static double getValО (

double checkval;

// присваивание переменной checkval значения,

// подученного в результате некоторюс вычислений.

if (checkval < 5) return 4.7;

>
110

Глава 6

Если checkval >= 5, то не встретится ни одного оператора return, а это запрещено. Все ветви должны оканчиваться этим оператором,

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

Параметры

Если функция должна получать параметры, то необходимо задать:

? Список принимаемых функцией параметров в ее описании, а также типы этих параметров

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

Это предполагает использование следующего кода: '

static <возвращлега1ЙТип> <нняфункции> (<типПарлметра> <имяПараиетра>, .., >

(

return <возвравлвмоеЭначеыие>;

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

static double product (double paraml, double param2)

(

return paraml * param2;

)

Теперь перейдем к рассмотрению более сложного примера.

Практикум: обмен данными с функцией

1. Создайте новое консольное приложение с именем сьобЕхог В директории С:\Be0CSharp\Chapter6,

2. Добавьте следующий код в ciaasi.es:

class Classl (

static int MaxValue(int11 intArray)

(

int maxVal * intArray[OJ; .

for (int i * It i < intArray.Length) i++)

(

if (intArrayti] > maxVal) maxVal ¦ intArray[i]j

)

return maxVal;

) ¦ .
static void Main(string!] args)

( ' M in i _.

lntH myArray. 1 (1, 9, 3, 6, 3, 5, Э, 3, 0, 3b int max Val = ifcutValue (ntyArray) j

Console. WriteLine ("The maximum value in my Array is (0)', maxVal);

)

3. Запустите программу:

Как это работает

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

static int MaxValue (int [ ] intArray)

int maxVal = intArray[0]; for (int i = 1; i < intArray.Length; i++) (

if (intArray[i] > maxVal) ¦

maxVal = intArray[i]j

)

return maxVal;

Данная функция —HaxvaiueO — имеет один параметр, который описан как массив типа int с именем intArray. Возвращаемое значенне также имеет тип inc. Определение максимального значения представляет собой несложную задачу. Локальной целой переменной с именем maxVal в качестве начального значения присваивается первый элемент массива, а затем производится сравнение этого значения последовательно со всеми остальными элементами, Еслн текущий элемент больше, чем значение переменной maxVal, то текущее значение maxval заменяется на это значение. Когда выполнение цикла завершено, переменная maxval содержит наибольшее значенне данного массива, которое и возвращается оператором return.
Предыдущая << 1 .. 50 51 52 53 54 55 < 56 > 57 58 59 60 61 62 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.