|
Программирование >> Процедурные приложения
* oprs.c * Эта программа на языке С демонстрирует применение * операторов сравнения и логических операторов. #include <stdio.h> int main () float foperand1, foperand2; printf( \nВведите значения переменных foperand1 и foperand2: ); scanf( %f%f , &foperand1, &foperand2); printf( \n foperand1 > foperand2 =%d , (foperand1 > foperand2)); printf( \n foperand1 < foperand2 =%d , (foperand1 < foperand2)); printf( \n foperand1 => foperand2 =%d , (foperand1 >= foperand2)); printf( \n foperand1 <= foperand2 = %d ,(foperand1 <= foperand2)); printf( \n foperand1 == foperand2 =%d , (foperand1 == foperand2)); printf( \n foperand1 != foperand2 =%d , (foperand1 != foperand2)); printf( \n foperand1 && foperand2 =%d , (foperand1 && foperand2)); return(0); Иногда полученные результаты могут вас удивить. Следует помнить, особенно при сравнении значений типа float и double, что отличие даже в последней цифре после запятой будет воспринято как неравенство. Ниже показана аналогичная программа на языке C++: * oprs. срр * Эта программа на языке C++ демонстрирует применение * операторов сравнения и логических операторов.. #include <iostream.h> int main () { float foperand1, foperand2; cout << \nВведите значения переменных foperand1 и foperand2: cin >> foperand1 >> foperand2; cout << foperand1 > foperand2 = << (foperand1 > foperand2) << \n ; cout << foperand1 < foperand2 = << (foperand1 < foperand2) << \n ; cout << foperand1 >= foperand2 = << (foperand1 >= foperand2) << \n ; cout << foperand1 <= foperand2 = << (foperand1 <= foperand2) << \n ; cout << foperand1 == foperand2 = << (foperand1 == foperand2) << \n ; cout << foperand1 != foperand2 = << (foperand1 != foperand2) << \n ; cout << foperand1 && foperand2 = << (foperand1 S& foperand2) << \n ; cout << foperand1 I Joperand2 = << (foperand1 I I foperand2) << \n ; return(0); Условный оператор Оператор ?: часто применяется в различных условных конструкциях. Он имеет cледующий синтаксис: Условие ? в1ражение1 : выражение2 Если условие равно true выполняется выражение1 в противном случае выражение2. Оператор запятая Позволяет последовательно выполнить два выражения записанных в одной строке. Синтаксис оператора следующий: левое выражение, правое выражение Приоритеты выполнения операторов Последовательность выполнения различных действий в выражении определяется компилятором.Вследствие этого могут получаться неправильные результаты, если не был учтен порядок разбора выражения компилятором. Побочные эффекты также могут возникать при неправильном использовании простого и комбинированного операторов присваивания.Вот почему важно установление четких приоритетов в выполнении операторов и порядка вычисления операндов. К примеру, операция логического И (&&) всегда выполняется слева направо: while ((с= getchar()) != EOF) &£, \n)) Оператор & & предопределяет, что сначала будет выполнено выражение слева от него, т.е. переменной с будет присвоено значение, возвращаемое функцией getchar (), и только потом это значение проверяется на равенство символу новой строки. В табл. 5.4 перечислены все операторы языков С и C++ в порядке уменьшения их приоритета (для компилятора MicrosoftVisual C++) и указывается направление вычисления операндов (ассоциативность): слева направо или справа налево.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |