Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Язык Си. Лабораторные работы / Справочник. Часть 1 (СПбГУТ).doc
Скачиваний:
49
Добавлен:
10.09.2019
Размер:
949.25 Кб
Скачать

1.22.4. Инструкция return

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

return [выр];

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

double max(double a, double b) { return ((a > b) ? a : b); }

В теле рассматриваемой функции max() находится только одна инструкция – инструкция return. Эта инструкция выполняет два действия. Во-первых, инструкция формирует с помощью условного выражения возвращаемый результат. Во-вторых, она прекращает вычисления в функции max() и передает управление в точку вызова функции.

1.23. Составная инструкция

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

1.24. Инструкция if else

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

● Альтернатива.

● Действие или обход.

1.24.1. Полная и сокращенная формы инструкции if

Рассматриваемая инструкция применяется в двух формах:

● Полной

● Сокращенной

В полной форме инструкция if .. else моделирует стандартную управляющую структуру, которая называется альтернатива, а в сокращенной форме – стандартную управляющую структуру действие или обход.

Рассматриваемая инструкция имеет следующий формат:

if(выр) инструкция1 [else инструкция2]

Инструкция if в общем случае содержит следующие компоненты:

● Зарезервированные слова if и else.

● Внутренние инструкции инструкция1 и инструкция2.

● Выражение выр, предназначенное для принятия решения об использовании внутренних инструкций.

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

Полная форма инструкции if позволяет организовать разветвление на два направления. Первое направление (true – ветвь разветвления) представлено единственной инструкцией языка Си инструкция1, а второе направление (false - ветвь) – единственной инструкцией инструкция2.

Логика работы полной инструкции if такова. В зависимости от значения, которое имеет выражение выр (true или false) будет выполняться либо внутренняя инструкция инструкция1, либо внутренняя инструкция инструкция2. Внутренняя инструкция инструкция1 выполняется только в том случае, когда значение выражения выр равно true, в противном случае будет выполняться внутренняя инструкция инструкция2. Нетрудно видеть, что логика работы полной инструкции if соответствует стандартной управляющей конструкции “альтернатива”.

В сокращенной форме инструкции if имеется только одна внутренняя инструкция (инструкция1). Работа такой формы инструкции if отличается от работы полной формы инструкции if только для случая, когда значение выражения выр равно false. В этом случае при использовании сокращенной формы инструкции if не выполняется ни каких действий. Можно сказать, что в этом случае имеет место обход действия, предусмотренного единственной инструкцией инструкция1.

Приведем примеры использования инструкции if.

Пример 1. Даны два числа a и b. Необходимо найти значение наибольшего из этих чисел.

/* В коде, приведенном ниже a, b max – переменные типа double. Переменные a и b содержат исходные данные, а переменная max – ожидаемый результат */ if(a > b) max = a; else max = b; /* Вызов функции printf()расположен в линейной части и выполняется сразу после завершения работы инструкции if */ printf(“Максимальное значение = %0.3f”, max); /* Конец фрагмента программного кода */

В качестве примера применения сокращенной формы рассматриваемой инструкции рассмотрим усложненный вариант задачи, решение которой было выбрано в качестве иллюстрации применения полной инструкции if.

Пример 2. Даны три числа a, b и c. Необходимо найти значение наибольшего из чисел.

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

/* В коде, приведенном ниже, a, b, с и max – переменные типа double.Переменные a, b и c содержат исходные данные, а переменная max – ожидаемый результат */ if(a > b) max = a; else max = b; if(c > max) max = c; printf(“Максимальное значение = %0.3f”, max); /* Конец фрагмента программного кода */