Операторы отношения и логические



В выражениях оператор отношения и логический оператор слово отношение обозначает взаимоотношение двух величин, т.е. результат сравнения, а слово логический обозначает способ, которым объединяются истинное и ложное значения.

В С++ результат операции отношения или логической образует результат типа bool или другими словами результат операции отношения или логической всегда равен либо true либо false.

Таблица 3 Операторы отношения и логические в С++

Операторы отношения Значение
< Меньше чем
<= Меньше чем или равно
> Больше чем
>= Больше чем или равно
== Равно
!= Не равно
Логические операторы  
&& И
|| ИЛИ
! НЕ

Оба типа операторов и логические и отношения имеют более низкий приоритет, чем арифметические операторы. Это означает, что выражение 10 > 1+12 даёт тот же результат что и вариант 10 > (1+12), результат, разумеется, ложен.

С помощью логических операторов можно объединить любое количество операторов отношения, например:

var > 15||! (10 < count) &&3 <= item                 // объединены три оператора отношения

В приведённой ниже таблице показаны относительные приоритеты операторов отношения и логических операторов.

Высший !
  > >=  <  <=
  == !=
  &&
Низший ||

Оператор присваивания

Оператор присваивания обозначается одиночным знаком равенства. Действие оператора в С++ практически такое же как ив других языках. Его общая форма записи:

переменная = выражение

Здесь переменная принимает значение используемого выражения. Оператор в С++ позволяет создавать цепочку присваиваний, например:

int x, y, z;

x= y = z =100;                                // присвоить x, y, z значение 100

 

Составные присваивания

В С++ предусмотрены специальные операторы составных присваиваний, которые упрощают написание некоторых предложений, например,

x = x + 10;    может быть записано               x += 10;

Операторная пара += указывает компилятору С++, что переменной x следует присвоить значение x плюс 10

x = x - 100;   равносильно                   x -= 100;

Из-за того, что предложения составного присваивания короче своих развёрнутых эквивалентов, операторы составного присваивания иногда называют операторами краткого присваивания. Операторы составного присваивания обладают двумя достоинствами. Во-первых они более компактны, а во-вторых могут порождать более эффективный выполнимый код, т.к. при их использовании операнд оценивается лишь один раз. Поэтому операторы составного присваивания используются в профессиональном программировании на С++.

Примечание

В операторах присваивания в тех случаях, когда переменные одного типа сопоставляются с переменными другого типа, выполняется операция преобразования типов. Правило преобразования типа весьма простое: значение правой стороны операции присваивания (т.е. стороны выражения) преобразуется в тип левой стороны (переменной-мишени), например:

int x;

char ch;

float f;

ch = x;                // в ch помещаются младшие 8-бит

x = f;                   // в х помещается целая часть f

f=ch;                   //в f преобразуется 8-битовое целое из ch

f =x                      // в f преобразуется целое из х

Выражения

Операторы, переменные и литералы используются в качестве компонентов выражений.

В тех случаях, когда переменные различных типов смешиваются в выражениях, они преобразуются к одному типу. Прежде всего, все значения char и short int автоматически повышаются до int. Далее все операнды повышаются до самого высокого типа.

Значения типа bool , в случаях их использования в целочисленных выражениях, автоматически преобразуются в целые 0 или 1. Когда целочисленный результат преобразуется в тип bool, 0 превращается в false, а любое не нулевое значение в - true.

Приведение типа

В С++ предусмотрена возможность принудительного присваивания выражению конкретного типа с помощью конструкции, называемой приведением типа. Общая форма конструкции такова:

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

Здесь тип - это мишень, в который требуется преобразовать выражение, например, при необходимости удостовериться, что выражение х/2 при вычислении даёт float , необходимо написать:

(float) x / 2;

Приведения считаются операторами. В качестве оператора приведение является одноместным (унарным) и имеет тот же относительный приоритет, что и любой одноместный оператор.

В некоторых случаях приведение может оказаться чрезвычайно полезным. Например, в качестве счётчика цикла естественно использовать целочисленную переменную, однако может понадобиться выполнять с ней какие-либо вычисления, приводящие к дробному результату, как это делается в приводимой ниже программе.

// Задание 4_EX_PRT.cpp: определяет точку входа для консольного приложения.

// EX_PRT.cpp: главный файл проекта.

// Демонстрация приведения типа

// Назовите этот файл EX_PRT.cpp

#include "stdafx.h"

#include <iostream>

using namespace std;

// C++ программа начинает своё выполнение с функции main()

int main()

{

       setlocale(LC_ALL, "Russian");

       int i;

       for (i = 1; i <= 10; ++i)

       cout << i << " / 2 равно: " << (float)i / 2 << "\n";

return 0;

}

 Результат работы программы позволяет увидеть дробную часть при делении на 2 целочисленной переменной.


Дата добавления: 2019-07-15; просмотров: 208; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!