Управление вычислительными процессами. Конструкции if-else, else-if.
срабатывает, если все выражения ложны и используеся для фиксации ошибочной ситуации.
Переключатель
Инструкцией в языке Си наз любое выражение ,заканчивающееся ;Инструкции могут быть простыми и составными. Составная инструкция или блок- это любая совокупность простых инструкций, заключенных в {}
{[объявление]
инструкция
[инструкция]…
}
Инструкция ветвления
Выбирает из группы альтернатив возможное выполнение продолжения вычислительного процесса.
В Си эти инструкции организованы как :
If- else, switch
Переключатель switch
предназначена для выбора одного из различных вариантов
switch (выр){[объявления]
case конст_выр : [инструкции]
[case конст_выр : [инструкции]]
[default : [инструкции]]}
Выражение следующее за switch может быть любым целым выражением. Значение этого выражения явл критерием для выбора одного из нескольких вариантов. Тело оператора switch состоит из нескольких операторов, помеченых словом case. Обычно в качестве конст_выр используются целые или символьные константы.
В операторе switch может быть только одна ветвь, помеченная default. Она не обязательно должна стоять последней.
Схема выполнения оператора switch
1)вычисляется выр в скобках
2)вычисленное значение последовательно сравнивается с конст_выр
3)если сравнение найдено, то выполняются соответствующие инструкции
4)если сравнение не найдено и есть ветвь default, то выполняется ее инструкция
5)если сравнение не найдено и ветви default нет, то выполняется следующий за switch оператор.
Т.к. выбор ветви case реализован как переход на метку, то после выполнения одной ветви case будут выполняться другие инструкции ветвей case до конца операции. Немедленный выход из переключателя осуществляется с помощью инструкции break;
Char sign;
Int x,y,z;
Switch(sign){
Case’+’: z=x+y;break;
Case’-’: z=x-y;break;
Case’*’: z=x*y;break;
Case’/’: z=x/y;break;
Default: prinf(“ошибочный знак операции\n”)}
Для того чтобы выполнить одни и те же действия для различных значений выражения, можно пометить один и тот же оператор разными case.Допускается использование вложенных операторов switch. В этом случае в ветвях case внешнего и внутреннего операторов допускаются одинаковые конст_выр.
Операторы цикла.
While(выр)
Инструкция
Вначале вычисляется выр в скобках, если оно истино, то выполняется инструкция.
for(выр1;выр2;выр3)
инструкция
выр1(выр. инициализации)- используется для установления начальных значений переменных, управляющих циклом
выр2(выр.условия)- определяет условие при к-ром цикл выполняется
выр3(выр.интеграции)- объявляет изменение переменной, управляющей циклом
Схема выполнения:
1) вычисляется выр1
2) вычисляется выр2,если оно истино,то выполняется инструкция
3) вычисляется выр3
4) снова вычисляется выр2
- - - - - пока условие не станет ложным.
Любое из трех выражений может отсутствовать. При отсутствии выр1 или 3 считается, что их просто нет, а при отсутствии выр2 считается, что оно истино.
Для управления циклом возможно использование не6скольких переменных. При этом используется оператор последовательного вычисления, к-рый наз «запятая». Типом и значением результата явл тип и значение правого выражения, что позволяет в цикле for в любом из трех компонентов иметь по несколько выражений, например, ввести два индекса одновременно.Пара выражений, разделенных запятой, вычисляется слева направо.
Инструкция в цикле for может быть и пустой
Do-while
Используется в тех случаях, когда тело цикла должно быть выполнено хотя бы один раз.
do
инструкция
while(выр)
Схема выполнения:
1) сначало выполняется инструкция
вычисляется выражение. Если оно истино, то инструкция выполняется снова, и так до тех пор, пока выражение не станет ложным.
Инструкции break, continue. Инструкция goto и метки. Пустой оператор
иногда бывает удобно выйти из цикла не по результату выполнения условия в начале или конце цикла, а каким-то другим способом.
Формат инструкции break:
Действие инструкции прерывает выполнение операторов while, for, do-while, switch.
Если break находится внутри вложенных циклов или переключателей, то он прерывает действие только самого внутреннего, т.е его охватывающего цикла.
Continue
Прерывает тело цикла, но передает управление на следующую операцию. Для while, do-while это означает немедленный переход к проверке условия ввода, а для for к прекращению шага. Его можно применять только в циклах. Если цикл вложенный, то прерывается самый внутренний.
Goto
Область действия ограничена ф-цией, в к-рой она определена. Следовательно, каждая метка уникальна. Нельзя передать управление goto в другую ф-цию. Если оператор с данной меткой отсутствует или существует