![]()
Главная Обратная связь Дисциплины:
Архитектура (936) ![]()
|
Ложь, отличное от нуля значение - истина
оператор - это один из четырех видов операторов: пустой, простой, составной или управляющий. Эта конструкция организует следующую схему работы программы. Простую форму оператора ifможно продолжить словом elseи еще одним оператором. Получится законченная конструкция условного оператора, реализующая схему, называемую развилкой, в которой будет выполнен один из двух операторов. Форма задания следующая: if(выражение) оператор; else оператор2Эта конструкция организует следующую схему работы программы. Если выражение истинно, то будет выполнен оператор1,в противном случае опе-ратор2. Называют эту конструкцию if-else.Она полезна в тех случаях, когда в программе необходимо выполнить один из двух операторов. Например, программа должна поздравить пользователя, если он угадал число и огорчить в случае неудачи. Фрагмент реализа-ции показан ниже: if( а= = b) printf("Поздравляю! Вы угадали.\n") ; else printf("Попробуй еще.\n") ; Если при удачной попытке программе необходимо прибавить пользователю некоторое количество очков, то на месте оператора1придется выполнить еще один оператор.______ if(а= = b ) { printf("Поздравляю! Вы угадали.\n") ; bonus += 5 ; // Увеличить на 5 имеющееся количество очков } else printf("Попробуй еще.\n") ; Если не применить составной оператор, то конструкция if окажется разорванной оператором bonus += 5,и компилятор будет выдавать ошибку, связанную с неправильным применением ключевого слова else. Вместо простых и составных операторов, в конструкции if можно использовать любой управляющий оператор, в том числе и оператор if. При этом может получиться следующая схема: if(выражение1) if(выражение2) оператор1 Оператор1будет выполнен только тогда, когда будут истинны оба выражения. Эту конструкцию можно привести к более простой, использовав сложное логическое выраже-ние. if(выражение1 && выражение2) оператор1 Но она имеет продолжение, т.к. можно добавить слово elseи второй оператор. if(выражение1) if(выражение2) оператор1 else оператор2 В таких конструкциях слово elseсо своим оператором будет отнесено компилятором к ближайшему if, который не является законченной конструкцией (если их ничего не разделяет), т.е. ко второму оператору if. Если необходимо, чтобы слово elseбыло отнесено к первому оператору if, то необходимо воспользоваться фигурными скобками, как показано ниже. if(выражение1) { if(выражение2) оператор1 } else оператор2 Поскольку первый оператор if в предыдущей конструкции остался открытым, то можно добавить еще одно слово else. Получится следующая законченная конструкция: if(выражение1) if(выражение2) оператор1 else оператор2 else операторЗ Более интересная конструкция получается, если оператор if применен после слова else. if(выражение1) оператор1 else if(выражение2) оператор2 Эта конструкция имеет свое продолжение, т.к. второй оператор if может быть продолжен словом else,после которого можно опять поставить оператор ifи т.д. if (выражение11) оператор1 else if(выражение2) оператор2 else if(выражениеЗ) операторЗ else операторы Называют эту конструкцию if-else-if.Она полезна в тех случаях, когда в программе необходимо выполнить один из многих операторов. Рассмотрим простейший пример использования условного оператора. Пусть нам нужно написать программу деления двух вещественных чисел. При делении может возникнуть ситуация, когда делитель будет равен нулю, и тогда результат будет неопределен. Если непринять никаких мер по решению этой проблемы, то в случае нулевого делителя программа будет выдавать сообщение об ошибке. Тогда программа может выглядеть так: main() { float a,b,ratio; printf(“Введите два числа: “); scanf(“%f %f”,&a,&b); if(b==0.0) printf(“Отношение не определено\n”); else { ratio = a / b; printf(“Отношение = %f \n”,ratio); } } В данной программе составной оператор ограничивается двумя фигурными скобками и состоит из операторов деления и печати отношения.
![]() |