Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Здесь оператор может быть только одним оператором, блоком операторов или отсутствовать (пустой оператор). Фраза else может вообще отсутствовать




Оператор if

Условные операторы

Общая форма оператора if следующая:

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

Если выражение истинно (т.е. принимает любое значение, отличное от нуля), то выполняется оператор или блок операторов, следующий за if. В противном случае выполняется оператор (или блок операторов), следующий за else (если эта фраза присутствует). Необходимо помнить, что выполняется или оператор, связанный с if, или с else, но оба — никогда!

В следующей программе иллюстрируется использование оператора if. В ней запрограммирована очень простая игра "угадай магическое число". Если играющий угадал число, на экран выводится сообщение **Верно**. Программа генерирует "магическое число" с помощью стандартного генератора случайных чисел rand(). Генератор возвращает случайное число в диапазоне между 0 и RAND_MAX (обычно это число не меньше 32767). Функция rand() объявлена в заголовочном файле <stdlib.h>.

 

/* Магическое число, программа N1. */#include <stdio.h>#include <stdlib.h> int main(void){ int magic; /* магическое число */ int guess; /* попытка игрока */ magic = rand(); /* генерация магического числа */ printf("Угадай магическое число: "); scanf("%d", &guess); if(guess == magic) printf("** Верно **"); return 0;}

В следующей версии программы для игры в "магическое число" иллюстрируется использование оператора else. В этой версии выводится дополнительное сообщение в случае ложного ответа.

/* Магическое число, программа N2. */#include <stdio.h>#include <stdlib.h> int main(void){ int magic; /* магическое число */ int guess; /* попытка игрока */ magic = rand(); /* генерация магического числа */ printf("Угадай магическое число: "); scanf("%d", &guess); if(guess == magic) printf("** Верно **"); else printf("Неверно"); return 0;}

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

Например:

if(i){ if(j) statement 1; if(k) statement 2; /* этот if */ else statement 3; /* ассоциирован с этим else */}else statement 4; /* ассоциирован с if(i) */

Последняя фраза else не ассоциирована с if(j) потому, что она находится в другом блоке. Эта фраза else ассоциирована с if(i). Внутренняя фраза else ассоциирована с if(k), потому что этот if — ближайший.

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

/* Магическое число, программа N3. */ #include <stdio.h>#include <stdlib.h> int main(void) { int magic; /* магическое число */ int guess; /* попытка игрока */ magic = rand(); /* генерация магического числа */ printf("Угадай магическое число: "); scanf("%d", &guess); if (guess == magic) { printf("** Верно **"); printf("Магическое число равно %d\n", magic); } else { printf("** Неверно, "); if(guess > magic) printf("слишком большое\n"); /* вложенный if */ else printf("слишком малое\n"); } return 0;}



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


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


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



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




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