Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Условные операторы. Составление разветвляющихся алгоритмов

Составление разветвляющихся алгоритмов

 

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

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

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

выражение – логическое или арифметическое выражение, вычисляемое перед проверкой, и, если выражение истинно (не равно нулю), то выполняется оператор, иначе он игнорируется; оператор – любой оператор языка Си. Если в случае истинности выражения необходимо выполнить несколько операторов (более одного), их необходимо заключить в фигурные скобки. (Группа операторов, заключенная в фигурные скобки, называется составным оператором или блоком).

 

 
 

Примеры записи:

 

if (x > 0) x = 0;

if (i!= 1) j++, s = 1; – используем операцию «запятая»;

if (i!= 1)

{

j++; s = 1; – последовательность операций (блок);

}

if (getch()!= 27) k = 0; – если нажата любая клавиша, кроме “Esc”.

if (!x) exit (1); – или так: if (x == 0) exit(1);

if (i>0 && i<n) k++; – если нужно проверить несколько условий, то их объединяют знаками логических операций.

 

Синтаксис полной формы условного оператора:

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

else оператор 2;

Если выражение не равно нулю (истина), то выполняется оператор 1, иначе – оператор 2. Операторы 1 и 2 могут быть простыми или составными (блоками).

Наличие символа «;» перед словом else в языке Си обязательно.

 
 

 

Примеры записи:

 

if (x > 0) j = k+10;

else m = i+10;

if (x > 0 && k!=0)

{

j = x/k;

x += 10;

}

else m = k*i + 10;

 

Операторы 1 и 2 могут быть любыми операторами, в том числе и условными. Тогда, если есть вложенная последовательность операторов ifelse, то слово else связывается с ближайшим к ней предыдущим if, не содержащим ветвь else. Например:

if (n > 0)

if(a > b) z = a;

else z = b;

Здесь ветвь else связана со вторым if (a > b). Если же необходимо связать слово else с внешним if, то используются операторные скобки:

if (n > 0) {

if (a > b) z = a;

}

else z = b;

В следующей цепочке операторов if – else – if выражения просматриваются последовательно:

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

else

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

else

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

else оператор 4;

Если какое-то выражение оказывается истинным, то выполняется относящийся к нему оператор и этим вся цепочка заканчивается. Каждый оператор может быть либо отдельным оператором, либо группой операторов в фигурных скобках. Оператор 4 будет выполняться только тогда, когда ни одно из проверяемых условий не выполняется. Иногда при этом не нужно предпринимать никаких явных действий, тогда последний else может быть опущен, или его можно использовать для контроля, чтобы зафиксировать "невозможное" условие (своеобразная экономия на проверке условий).

Пример:

if (x < 0) printf("\n X отрицательное \n");

else if(x==0) printf ("\n X равно нулю \n");

else prinf("\n X положительное \n");

Замечание. Наиболее распространенной ошибкой при создании условных операторов является использование в выражении операции присваивания «=» вместо операции сравнения на равенство операндов «==» (два знака равно). Например, в следующем операторе синтаксической ошибки нет:

if (x = 5) a ++;

но значение а будет увеличено на единицу независимо от значения переменной х, т.к. результатом операции присваивания х = 5 в круглых скобках является значение 5 ¹ 0 – истина.

 

<== предыдущая лекция | следующая лекция ==>
Операторы языка С | 
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 228; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.017 сек.