Вівторок, 19.03.2024, 06:50
Гость

Мішатронік

Мобільна версія | Додати у вибране  | Мій профіль | Вихід | RSS |
Меню сайту
Наше опитування
Чи знайома вам така технологія, як Flutter?
Всього відповідей: 0
Статистика

Онлайн всього: 1
Гостей: 1
Користувачів: 0


Простая конструкция if позволяет нам выбрать, выполнить или нет некоторое действие; конструкция же if-else дает возможность выбрать одно из двух действий.

 

Подведем итоги.

 

Оператор if имеет две формы:

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

и

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

Если в результате вычисления значения выражения получено значение " истина " (ненулевое значение), то в обеих формах оператора if выполняется оператор1. Если вычисленное значение выражения равно значению " ложь " (нулевое), тогда выполнение оператора if, представленного в первой форме, заканчивается, а в операторе, имеющем вторую форму, выполняетсяоператор 2.

 

Совместное использование обеих форм оператора if приводит к неоднозначности, называемой " проблемой висящего else ".

 

Например, вложенный оператор if

 
if(e1) if( e2) оператор1; else оператор2;
 

может быть интерпретирован так

 
if (e1)
 if(e2)
 оператор1;
 else
 оператор2;
 

или так

 
if(e1)
 if(e2) оператор1;
else
 оператор2;
 

Эта неоднозначность разрешается в языке Си с помощью правила, в соответствии с которым часть else оператора всегда относится к синтаксически самому правому, игнорируя любые отступы, оператору if без части else. Следовательно, первая интерпретацияявляется интерпретацией, принятой в языке Си.

 
! Существует простой способ, позволяющий избавиться от такой неоднозначности: следует избегать одновременного использования обеих форм операторов if в конструкциях с вложенными операторами if. При необходимости можно воспользоваться пустым оператором. Например, вторая интерпретация вышеприведенного оператора if может быть записана как
 
if(e1)
if(e2) оператор1;
else
; /* точка с запятой здесь обозначает пустой
оператор*/
else оператор2;
 

Для явного указания намерений программиста можно использовать и фигурные скобки. Например, обе вышеприведенные интерпретации можно записать явно так:

 
if(e1) {
 if(e2)
 оператор1;
 else
 оператор2
}
 

и

 
if(e1) {
 if(e2) оператор1;
}
else
 оператор2;
 

Операции отношения

Операции отношения используются для сравнений. Мы уже обсуждали их, но здесь мы остановимся на их обсуждении подробнее.

 
Операция смысл
< меньше
<= меньше или равно
== равно
>= больше или равно
> больше
!= не равно
 

Этот список хорошо соответствует возможным числовым соотношениям.

 
! Главное предостережение, которое мы хотим сделать, состоит в том, чтобы не использовать знак = вместо ==. С помощью операции присваивания некоторое значение присваивается переменной слева от знака равенства. В то же время с помощью операции отношения "равенство" проверяется: равно ли выражение, стоящее слева от знака, выражению справа от него. Эта операция не изменяет значения переменной в левой части, если она там присутствует. При программировании требуется аккуратность, потому что в ряде случаев компилятор не сможет обнаружить ошибки, связанные с неправильным использованием знаков этих отношений, что приведет к результатам, отличным от тех, которые вы должны были бы получить.
 

Операции отношения применяются при формировании условных выражений, используемых в операторах if и while. Указанныеоператоры проверяют, истинно или ложно данное выражение.

 

Пример:

 
#include <stdio.h>
main( ) 
{
 int mark;
 mark = getchar( );
 if(mark == '4')
 printf("Оценка 4.\n");
 else if (mark > '4')
 printf("Оценка больше 4!\n");
 else /* случай, когда оценка меньше 4 */
 {
 mark--;
 printf("Теперь оценка на 1 меньше.\n");
 }
}

 

Форма входа
Пошук
Друзі сайту
Календар
«  Березень 2024  »
ПнВтСрЧтПтСбНд
    123
45678910
11121314151617
18192021222324
25262728293031

Єдина Країна! Единая Страна!