3.2. Условный оператор
Условный оператор if...elseвыполняет оператор или блок операторов в зависимости от значения выражения в условии. Оператор имеет следующий формат:
if(выражение-1)
блок-операторов-1
else if (выражение-2)
блок-операторов-2
...
else
блок-операторов-n
где:
выражение-1 и выражение-2 – любые выражения, которые могут быть оценены как «истина» или «ложь»;
блок-операторов-1, блок-операторов-2и блок-операторов-n– один оператор или несколько операторов – блок операторов (блок операторов должен быть заключен в фигурные скобки).
Сначала вычисляется выражение-1. Если значение выражения –ненулевое («истина»), то выполняетсяблок-операторов-1и происходит переход к выполнению оператора, следующего за условным оператором. Есливыражение-1равно0(«ложь»), производится проверкавыражения-2, и, если оно истинно, выполняетсяблок-операторов-2 и выполнение условного оператора заканчивается и т. д.Блок-операторов-nвыполняется, когда все предыдущие условия не выполняются. Операторы else ifиelseмогут быть опущены. В этом случае, если значениевыражения-1– «ложь»,блок-операторов-1не выполняется и сразу выполняется оператор, следующий в программе за операторомif.
3.3. Операторы цикла
В С существует три вида операторов цикла:
оператор пошагового выполнения цикла for;
оператор выполнения цикла по условию с проверкой условия в начале цикла while;
оператор выполнения цикла по условию с проверкой условия в конце цикла do...while.
Оператор пошагового выполнения цикла for имеет следующий формат:
for(начальное-выражение; условное-выражение; выражение-приращения)
блок-операторов
Первым шагом при выполнении цикла является вычисление начального-выражения(если оно имеется). Затемблок-операторов, представляющий собой один оператор или несколько операторов, заключенных в фигурные скобки, выполняется до тех пор, покаусловное-выражениене будет иметь нулевое значение («ложь»). При выполнении тела цикла может использоватьсявыражение-приращения(если оно есть).
Любое из трех выражений может отсутствовать, но символы ";" опускать нельзя. При отсутствииначального-выраженияивыражения-приращениясчитается, что их просто нет в данном цикле, при отсутствииусловного-выражения, полагается, что его значение – всегда не равно0(«истина»).
Оператор выполнения цикла по условию whileиdo...whileимеют следующий формат:
while(условное-выражение)
блок-операторов
и
do
блок-операторов
while(условное-выражение);
Блок-операторов– один оператор или несколько операторов – блок операторов (в фигурных скобках) выполняются до тех покаусловное-выражениене будет иметь значение0(«ложь»). Отличие циклаwhileотцикла do...whileв том, что в циклеwhileзначениеусловного-выражениявычисляетсядо началавыполненияблока-операторов, а в циклеdo...while–после, т.е. циклdo...whileвсегда выполняется хотя бы один раз.
3.4. Операторы перехода
Для досрочного завершения выполнения операторов цикла for,whileиdo...while, а также оператораswitchиспользуется операторbreak. Этот оператор вызывает немедленный выход изсамого внутреннегоиз охватывающих его циклов.
Оператор продолжения continueвызывает переход на следующую итерацию в операторах циклаfor,whileиdo...while. При этом операторы тела цикла, следующие за операторомcontinue, не выполняются. В операторах циклаwhileиdo...whileследующая итерация начинается с вычисления условного выражения, а для оператораfor– с вычисления выражения приращения, а затем условного выражения.
Оператор перехода goto, имеющий формат:
goto метка;
передает управление оператору в той же функции, помеченному меткой, за которой следует символ ":". Метка представляет собой обычный идентификатор языка С.
Можно войти в блок, тело цикла, условный оператор и оператор-переключатель по метке, однако нельзя передать управление на операторы caseилиdefaultв теле оператора-переключателя.
Хотя использование оператора gotoне считается хорошим стилем в программировании и его по возможности следует избегать, однако в некоторых случаях этот оператор может пригодиться (например при выходе из самого внутреннего из нескольких вложенных циклов за пределы самого внешнего цикла).