КАТЕГОРИИ: Архитектура-(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; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |