оператор_2;
Здесь в случае истинности (ненулевое значение) условия выполняется только оператор 1, при нулевом условии выполняется только оператор 2. Иными словами при помощи указанного оператора реализуется одна из двух возможных альтернатив. Следует отметить, что используемые операторы могут быть как простыми, так и составными.
Следующие две схемы отражают выполнение сокращенной и полной форм условного оператора.
Очевидно, что в общем случае может возникнуть и конструкция вложенного условного оператора. Такие конструкции предназначены для реализации множественного выбора, т.е. выбора одного из многих возможных путей.
Часть else оператора if-else может опускаться. Поэтому во вложенных операторах if с пропущенной частью else может возникнуть неоднозначность. В этом случае else связывается с ближайшим предыдущим оператором в if том же блоке, не имеющим части else.
Другим оператором языка С, предназначенным для реализации множественного выбора, является переключатель.
Синтаксически переключатель определяется следующей формой:
switch (выражение_условие)
{
caseконстанта_1: операторы_1
caseконстанта_2: операторы_2
. . .
caseконстанта_n: операторы_n
default: операторы_n+1
}
Здесь следует ввести еще один существующий в языке С оператор прерывания, обозначаемый через ключевое слово break.
Заметим, константное выражение не может включать переменных или вызовы функций.
Пример.
Case 3+4: правильно
Case X+Y: неправильно
Операторdefaultне обязательно должен быть последним.
Поставленный в конце отдельной ветви case, оператор break прерывает последовательность выполнения записанных операторов и управление передается на оператор, следующий за закрывающей фигурной скобкой, ограничивающей «тело» оператора switch.
Оператор break прекращает выполнение ближайшего вложенного оператора цикла или ветвления. Управление передается оператору, следующему за заканчиваемым. Одно из назначений этого оператора – закончить выполнение цикла при присваивании некоторой переменной определенного значения.
Графическая схема оператора переключения выглядит следующим образом:
Для изменения естественного последовательного порядка выполнения записанных в программе операторов и передачи управления требуемому оператору в языке С определено понятие метки и оператор безусловного перехода goto.
Метка – это идентификатор, помещаемый слева от оператора и отделенный от него двоеточием.
Для того, чтобы можно было поставить метку в любом месте программы, в языке С определен «пустой» оператор, изображаемый только одним символом «;», т.е.
Step1: ;
Оператор безусловного перехода имеет вид:
goto идентификатор-метка;
Операторы циклов.
При программировании очень часто возникает потребность многократного повторения одних и тех же действий. Для упрощения программирования в этом случае в язык вводятся специальные операторы, называемые операторами цикла. В языке С существует 3 вида операторов цикла:
1) параметрический for;
2) с предусловием while;
3) с постусловием do.
Указанные операторы имеют следующие синтаксические формы:
1. for (выражение_1; выражение_условие; выражение_3)
тело цикла
В качестве тела цикла может выступать простой или составной оператор или программный блок.
выражение_1 задает начальные условия цикла. Обычно это присвоение некоторых начальных значений некоторым используемым в теле цикла переменным.
выражение_условие – это логическое или арифметическое условие, определяющее окончание цикла (ложь) или его продолжение (истина). В случае истинного значения вычисляется выражение_3.
выражение_3 задает действия, связанные с изменением значений любых переменных тела цикла, необходимых для выполнения очередной итерации
Цикл повторяется до тех пор, пока указанное в операторе выражение_условие дает при вычислении значение истина (не 0).
Еще одну возможность влиять на выполнение операторов тела цикла обеспечивает специальный оператор перехода к следующей итерации цикла continue.
a) while b) do - while
c) for