Понятие блока. Операторы return, goto, метки
Понятие блока. Операторы return, goto, метки.
Выражение, скажем x=0, или i++, или printf(…), становится инструкцией, если в конце его поставить точку с запятой, например:
x=0;
i++;
printf(…);
В Си точка с запятой является заключающим символом инструкции, а не разделителем, как в языке Паскаль.
Фигурные скобки { и } используются для объединения объявлений и инструкций в составную инструкцию, или блок, чтобы с точки зрения синтаксиса эта новая конструкция воспринималась как одна инструкция. Фигурные скобки, обрамляющие группу инструкций, образующих тело функции, - это один пример; второй пример – это скобки, объединяющие инструкции, помещенные после if, else, while или for.Переменные могут быть объявлены внутри любого блока. После правой закрывающей фигурной скобки в конце блока точка с запятой не ставиться.
В Си имеются порицаемая многими инструкция goto и метки для перехода на них. Строго говоря, в этой инструкции нет никакой необходимости, и на практики почти всегда легко без нее можно обойтись.
Однако существуют случаи, в которых goto может пригодиться. Наиболее типичная ситуация, когда нужно прервать обработку в некоторой глубоко вложенной структуре и выйти сразу из двух или большего числа вложенных циклов. Инструкция break здесь не поможет, так как она обеспечит выход только из самого внутреннего цикла. В качестве примера рассмотрим следующую конструкцию:
Рекомендуемые материалы
For (…)
For (…) {
…
If (disaster) /* Если бедствие */
Goto error; /* уйти на ошибку */
}
…
Error: /*обработка ошибки*/
Информация в лекции "25. Послевоенная французская и германская пресса" поможет Вам.
Ликвидировать беспорядок
Такая организация программы удобна, если подпрограмма обработки ошибочной ситуации не тривиальна и ошибка встречается в нескольких местах.
Метка имеет вид обычного имени переменной, за которым следует двоеточие. На метку можно перейти с помощью goto из любого места данной функции, то есть метка видима на протежении всей функции.
Оператор return используется в функциях. Значение, вычисляемое функцией, возвращает в main с помощью инструкции return. За словом return может следовать любое выражение:
Return выражение;
Функция не обязательно возвращает какое-нибудь значение. Инструкция return без выражения только передает управление в ту программу, которая ее вызвала, не предавая ей никакого результирующего значение.