Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1_лекция_Основы_языка_С.doc
Скачиваний:
20
Добавлен:
05.06.2015
Размер:
395.78 Кб
Скачать

Цикл do-while часто используется в функциях выбора пунктов меню. Если пользователь вводит допустимое значение, оно возвращается в качестве значения функции. В противном

Особенности арифметических операций

При использовании деления надо помнить, что при делении целого числа на целое остаток от деления отбрасывается, таким образом, 7/4 будет равно 1. Если же надо получить вещественное число и не отбрасывать остаток, делимое или делитель надо преобразовать к вещественной

форме.

Например:

float x;

i = 7;

x = i / 4; // x=1, делится целое на целое

x = i / 4.; // x=1.75, делится целое на дробное

x =(float) i / 4; // x=1.75, делится дробное на целое

n = 7. / 4.; // n=1, результат записывается в

// целую переменную

Наибольшие сложности из всех действий вызывает взятие остатка. Если надо вычислить оста-

ток от деления переменной a на переменную b и результат записать в переменную ostatok,

то оператор присваивания выглядит так:

ostatok = a % b;

Оператор перехода

В языке С определены четыре оператора перехода:

  • return,

  • goto,

  • break и

  • continue.

Операторы returnиgotoможно использовать в любом месте внутри функции. Операторыbreakиcontinueможно использовать в любом из операторов цикла. Как указывалось ранее в этой главе,breakможно также использовать в оператореswitch.

Оператор return

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

Стандарт С89 допускает наличие оператора return без значения, даже если тип функции отличен от void. В этом случае функция возвращает неопределенное значение. Но что касается языков С99 и C++, если тип функции отличен отvoid, то ее операторreturnобязательно должен иметь значение. Конечно, и в программе на С89 отсутствие возвращаемого значения в функции, тип которой отличен отvoid, является признаком плохого стиля!

Общая форма оператора returnследующая:

return выражение;

Выражениеприсутствует только в том случае,если функция возвращает значение. Это значение выражения становится возвращаемым значением функции.

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

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

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

Оператор goto

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

Для оператора gotoвсегда необходима метка.Метка— это идентификатор с последующим двоеточием. Метка должна находится в той же функции, что иgoto, переход в другую функцию невозможен.

Общая форма оператора gotoследующая:

goto метка;

.

.

.

метка:

Метка может находиться как до, так и после оператора goto.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]