Студопедия

КАТЕГОРИИ:


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

}

}

Что такое истина

Мы ответим на этот вопрос, как он решается в языке Си. В Си выражение всегда имеет значение. Это утверждение остается верным даже для условных выражений, как показывает пример, приведенный ниже. В нем определяются значения двух условных выражений, одно из которых оказывается истинным, а второе - ложным:

/* истина и ложь*/

main()

{

int true, false;

true = (12 > 2); /*отношение истинно*/

false = (12 == 2); /*отношение ложно*/

printf("true = %d; false = %d\n",true,false);

}

При выполнении программы получим следующие результаты:

true = 1, false = 0.

В языке Си значение истина равно 1, а значение ложь равно 0. В языке Си все ненулевые значения являются истинными, и только 0 являются ложью. Например, два оператора

if(i!=0)

можно заменить на

if(i)

поскольку выражение (i!=0) и выражение (i) оба примут значения 0, или ложь, только в том случае, если значение переменной i равно 0.

Осложнение с понятием истина

Рассмотрим следующую программу:

/* занятость */

main()

{

int age =20;

while (age++ <= 63) {

/* делится ли возраст на 20*/

if((age % 20) == 0)

printf(" Вам %d.\n", age);

if(age = 63)

printf("Вам уже %d.\n",age);

}

}

Мы хотели написать программу, чтобы результат работы программы выглядел так:

Вам 40.

Вам 60.

Вам уже 63.

На самом деле выход будет таким:

Вам уже 63.

Вам уже 63.

Вам уже 63.

и т. д. - до бесконечности. Это произошло, потому что мы ошибочно написали

if(age = 63)

вместо

if(age == 63)

В операторе

if(age = 63)

переменной age присваивается значение 63, т. е. результат этого оператора - истина и выполняется оператор

printf("Вам %d.\n",age);

В операторе

while(age++ <= 63)

условие выполняется, и программа зацикливается.

Приоритеты операций отношения мы описали в лекции 3.




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


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


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



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




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