Хелпикс

Главная

Контакты

Случайная статья





if (disaster)



 

11. Понятие оператора языка Си. Условный оператор if, его полная форма записи if-else.

Вложенный оператор if.

 

• Выражение наподобие х = 0, i++ или printf(...) становится оператором, если после него поставить точку с запятой:

• В языке С точка с запятой является элементом оператора и его завершающей частью.

• Фигурные скобки, { и }, служат для группировки объявлений и операторов в составные операторы, или блоки, синтаксически эквивалентные одному оператору.

• Все операторы языка С могут быть условно разделены на следующие категории:

- условные операторы, к которым относятся оператор условия if и оператор выбора switch;
- операторы цикла (for,while,do while);
- операторы перехода (break, continue, return, goto);
- другие операторы (оператор "выражение", пустой оператор).

 

Оператор if

Формат оператора:
if (выражение) оператор;
Выполнение оператора if начинается с вычисления выражения.
Далее выполнение осуществляется по следующей схеме:
- если выражение истинно (т.е. отлично от 0), то выполняется оператор.
- если выражение ложно, то выполняется следующий за if оператор.

 

Оператор if-else
Формат оператора:
if (выражение) оператор-1; else оператор-2;
Выполнение оператора if начинается с вычисления выражения.
Далее выполнение осуществляется по следующей схеме:
- если выражение истинно (т.е. отлично от 0), то выполняется оператор-1.
- если выражение ложно (т.е. равно 0),то выполняется оператор-2.

Оператор else-if

 

if (выражение) оператор;
else if (выражение) оператор;
else if (выражение) оператор;
else if (выражение) оператор;
else ...

 

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

 

Вложенный оператор if.

Оператор if может быть включен в конструкцию if или в конструкцию else другого оператора if.

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

 

12.Условный оператор switch, его полная форма записи и возможности. Сравнение с

конструкцией if.

 

switch(целочисленное выражение)

{

       caseцелочисленное константное выражение1:

                       операторы1;

                   break;

caseцелочисленное константное выражение2:

                       операторы2;

                   break;

default:

       операторы n;

       breack;

}

 

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

Каждый из вариантов (блоков case) имеет метку в виде константы с целочисленным значением или константного выражения. Если одна из меток совпадает со значением выражения, управление передается операторам после этой метки. Все выражения после case должны быть различными.

 

Блок default выполняется в том случае, если не найдено ни одного соответствия в блоках case. Наличие блока default не обязательно; если его нет и не найдено ни одного соответствия, то не будут выполнены никакие операции. Блоки case и default могут следовать друг за другом в любом порядке.

 

Оператор break инициирует немедленный выход из оператора switch. Поскольку блоки case — это, по сути, всего лишь метки, после выполнения кода в одном из них продолжается выполнение кода следующего (насквозь через блоки case), пока не будет предпринята какая-нибудь операция для выхода из switch. Для этого чаще всего используются операторы break и return.

 

С точки зрения хорошего стиля программирования рекомендуется ставить оператор break даже в конце последнего блока (в данном случае default),

 

Конструкции, использующие вложенные операторы if, являются довольно громоздкими и не всегда достаточно надежными.

Недостатком же switch является невозможность использования нецелочисленных значений.

 

 

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

 

Многократное повторение каких-либо действий (команд) называется циклом.

Алгоритм назывется циклическим, если он содержит один или несколько циклов.

В языке Си известны три вида операторов цикла: for, while, do-while.

 

Цикл с проверкой условия в начале (цикл с предусловием) – это цикл while.

Имеет следующий вид:
while (выражение) тело;
В качестве выражения допускается использовать любое выражение языка Си, а в качестве тела любой оператор, в том числе пустой или составной. Схема выполнения оператора while следующая:
1. Вычисляется выражение.
2. Если выражение ложно, то выполнение оператора while заканчивается и выполняется следующий по порядку оператор. Если выражение истинно, то выполняется тело оператора while.
3. Процесс повторяется с пункта 1.

 

 

Эквивалентная запись.

Оператор цикла вида
for (выражение-1; выражение-2; выражение-3) тело ;
может быть заменен оператором while следующим образом:
выражение-1;
while (выражение-2)
{
тело
выражение-3;
}

 

 

14. Цикл с проверкой условия в конце. Цикл for. Их эквивалентные формы записи с помощью других

операторов цикла. Выбор типа цикла. Вложенные циклы. Правила вложения.

 

Цикл с проверкой условия в конце – это цикл do-while.

Конструкция do-while проверяет условие в конце, после выполнения тела цикла. Таким образом, тело цикла

всегда выполняется как минимум один раз.

Имеет следующий вид:

do тело while (выражение);

Здесь сначала выполняется тело, затем вычисляется выражение. Если оно истинно (не равно нулю), то снова выполняется тело, и т.д. Как только выражение становится ложным, выполнение цикла прекращается.

 

Оператор for - это наиболее общий способ организации цикла. Он имеет следующий вид:
for ( выражение 1; выражение 2; выражение 3) тело
Выражение 1 используется для установления начального значения переменных, управляющих циклом.

Выражение 2 - это выражение, определяющее условие, при котором тело цикла будет выполняться.

Выражение 3 определяет изменение переменных, управляющих циклом после каждого выполнения тела цикла.
Схема выполнения оператора for:
1. Вычисляется выражение 1.
2. Вычисляется выражение 2.
3. Если выражение 2 истинно, выполняется тело цикла, вычисляется выражение 3 и осуществляется переход к пункту 2, если выражение 2 ложно, то управление передается на оператор, следующий за оператором for.
Существенно то, что проверка условия всегда выполняется в начале цикла. Это значит, что тело цикла может ни разу не выполниться, если условие выполнения сразу будет ложным.

 

Эквивалентная запись.

Оператор цикла вида
for (выражение-1; выражение-2; выражение-3) тело ;
может быть заменен оператором while следующим образом:
выражение-1;
while (выражение-2)
{
тело
выражение-3;
}

 

Вложенные циклы.

Пример:
do

{

i++; j--;
while (a[k] < i) k++;
}
while (i<30 && j<-30);

 

15. Оператор перехода к следующей итерации цикла и оператор выхода из цикла.

Назначение. Состояние программы после их выполнения. Понятие метки. Оператор

безусловного перехода.

 

Операторы break и continue.

• Оператор break вызывает принудительный выход из 

циклов for, while и do — аналогично выходу из оператора switch. Выход выполняется

из ближайшего (самого внутреннего) цикла или оператора switch.

 

• Оператор continue напоминает break, но используется реже; он передает 

управление на следующую итерацию (проход) ближайшего цикла for, while или do. В 

цикле while или do это означает немедленную проверку условия, тогда как в цикле for

дополнительно выполняется инкрементирование. Оператор continue применим только

к циклам, но не к оператору switch. Если поставить continue внутри switch, в

свою очередь находящегося внутри цикла, то управление будет передано на следующий

проход этого цикла.

Оператор continue часто используется там, где следующая за ним часть цикла

слишком длинная и сложная, так что выделение ее отступами в условном операторе

ухудшает удобочитаемость.

 

 

Оператор goto (оператор безусловного перехода) и метки.

В языке С имеется оператор goto (бездонный источник потенциальных неприятностей) и метки для перехода с его помощью. В техническом плане оператор goto никогда не бывает необходим, и на практике почти всегда легче обходиться без него.

 

Тем не менее, есть несколько ситуаций, в которых и goto может найти свое место под солнцем. Наиболее распространенная— это необходимость прекратить работу управляющей структуры с большим количеством вложений, например выйти сразу из двух и более вложенных циклов. Оператор break тут не применим непосредственно, поскольку он обеспечивает выход только из внутреннего, ближайшего цикла. Поэтому получаем вот что:

 

for ( ... )

for (...) {

if (disaster)



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.