Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Операторы ветвления






Условные выражения позволяют изменять порядок выполнения программных элементов. В зависимости от условия выполняются те, или иные альтернативные действия. Для проверки условных выражений и выбора альтернативного действия используются операторы ветвления.

К операторам ветвления в языке С относят условную конструкцию if и переключатель switch.

Конструкция if. Сокращенный оператор if имеет следующую структуру:

if (выражение_условие) оператор;

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

 

if (a < = b) max = b;

else max = a;

 

лучше выражается так:

 

max = (a< =b)? b: a;

Конструкция if… else. Полная форма оператора if:

 

if (выражение_условие) оператор1; else оператор2;

 

В полном операторе if оператор1 выполняется в том случае, если выражение ненулевое (то есть истинное), иначе выполняется оператор2 или не выполняются никакие действия, если оператор2 не задан, то есть отсутствует else. В частности, если a целое, то if (a) эквивалентно if (a! = 0).

Множественный выбор – конструкция ‘else –if’. Оператор if позволяет выполнять, или не выполнять некоторое действие. Конструкция if…else дает возможность выбрать одно из двух действий. В то же время, очень часто удобно выбирать не одно из двух, а одно из нескольких условий. Для этой цели служит конструкция if-else. Она имеет следующий синтаксис:

 

if (выражение_условие) оператор;

else

if (выражение_условие) оператор;

else

if (выражение_условие) оператор;

.

.

else оператор;

 

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

 

if (выражение_условие)

оператор;

else if (выражение_условие)

оператор;

else if (выражение_условие)

оператор;

else

оператор;

 

Если ни одно из условий не является истинным, то выполняется последняя “ветка” else. Если ее нет, то никаких действий не выполняется.

Вложенные операторы if. Вложенные операторы if представляют собой конструкцию, в которой внутрь ветви одного if вложен другой оператор if. В соответствии со стандартом ANSI компиляторы оюязаны поддерживать не менее 15 уровней вложенности. Но большинство позволяют и более. При этом подключенная ветвь else относится к ближайшему оператору if. В следующем примере

 

if (n> 0)

if (a> b)

z=a;

else

z=b;

 

ветвь else относится к вложенному if, так как именно он является ближайшим. Если же необходимо, чтобы в этом примере ветвь else относилась к внешнему if, то необходимо воспользоваться блочным оператором {}:

 

if (n> 0)

{

if (a> b)

z=a;

}

else

z=b;

 

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

 

switch (перключающее_выражение)

{

case константа1: оператор1; break;

case константна2: оператор2; break;

...

case константнаn: операторn; break;

default: оператор;

}

 

Здесь switch, case, default, break являются ключевыми словами, а оператор может быть и простым и составным, причем заключать последовательность операторов в фигурные скобки необязательно. Выражение, стоящее после switch должно быть заключено в круглые скобки, а все тело оператора switch в фигурные. Управляющая конструкция switch передает управление к тому из помеченных с помощью case операторов, для которого значение константы совпадает со значением переключающего выражения. Переключающее_выражение должно быть целочисленным или его значение должно приводится к целочисленному. В одном переключателе все константы должны иметь различные значения, но быть одного типа. Любой из операторов может быть помечен одной или несколькими метками вида case константа:, например, может использовать конструкция вида

case константа1: case константа2: оператор;

Если значение переключающего_выражения не совпадает ни с одной из констант, то выполняется переход к оператору, отмеченному меткой default, которая может и отсутствовать (при этом не выполняются никакие действия). Если не предусмотрены переходы и выходы из переключателя, то в нем последовательно выполняются все операторы, начиная с той метки, на которую передано управление. Для выхода из переключателя обычно используют оператор break.


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.009 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал