Студопедия

КАТЕГОРИИ:


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

Функция, которая выводит на экран текстовые сообщения, значения переменных или выражений




Пример 6.

Таким образом, при использовании операции сравнения на равенство для уменьшения вероятности того, что она будет ошибочно заменена на операцию присваивания, в случае, когда один из операндов - константное значение, рекомендуется это константное значение писать слева от операции сравнения.

Пример 5.

Пример 4.

Пример 3.

Следует обратить внимание на одну очень распространенную ошибку при использовании операции сравнения на равенство (Пример 3).

Пример 2.

Else

Пример 1.

Else

Else

Действие2;

Если условие истинно, т.е. результат его проверки будет не 0, то выполнится действие1, иначе выполнится действие2, причем под действием подразумевается некоторый оператор языка C++. Брать простое условие в скобки обязательно. Условие состоит, как правило, из некоторого количества операций сравнения, которые объединяются с помощью логических операторов. В случае необходимости указания нескольких действий нужно использовать операторные скобки, например:

if (условие)

{

Блок_действий1

}

{

Блок_действий2;

}

Условный оператор может также иметь сокращенный вид:

if(условие) Действие1; if(условие) { Блок_действий1 }

т.е. возможность невыполнения условия не рассматривается.

Рассмотрим пример применения условного оператора:

if ((A >= 3) && (B <= 2))

{

C = A + B;

A += 2;

}

B += 2;

 

В рассмотренном примере условие является сложным, т.е. состоит из 2-ух подусловий, которые объединяются логической связкой «и». Таким образом, блок действий в ветке then выполнится, если одновременно будут истинны подусловия A >= 3 и B <= 2. Если хотя бы одно из них будет ложно, то выполнится действие, находящее в веточке else.

5. Кроме оператора if в языке C++ существует похожий на него тернарный (3 операнда) условный оператор ?:, который в общем виде выглядит следующим образом:

выражение1? выражение2: выражение3;

Этот оператор работает следующим образом:

  1. Сначала вычисляется значение выражения1, которое неявно приводится к типу данных bool.
  2. Если значение выражения1 true, то результатом выполнения оператора есть выражение2, в противном случае - выражение3.

Преимуществом этого оператора является, прежде всего, возможность записать его в одну строчку без нарушений правил форматирования кода программы. Рассмотрим пример применения такого условного оператора:

 

a = b > 0? a + 3: --b;

В результате выполнения условного оператора в примере 2 переменной a в зависимости от значения переменной b будет присвоено либо значение a + 3, либо уменьшенное на 1 значение переменной b.

 

if (A = 3)

A += 2;

В этом примере операция сравнения на равенство ошибочно заменена на операцию присваивания. Однако, в результате такой замены компилятор не сгенерирует сообщение об ошибке. Переменной A будет присвоено значение 3 и результат этой операции будет истинным (значение переменной не ноль). Следовательно, значение переменной A будет увеличено на 2. Но при выполнении «сравнения» первоначальное значение переменной A БЫЛО ПОТЕРЯНО, а операция сравнения вообще не выполнялась! Если бы условный оператор в примере 3 был записан следующим образом (пример 4):

 

 

if (3 = A)

A += 2;

 

то компилятор в этом случае выдаст ошибку, т.к. нельзя присвоить константе значение переменной и придется заменить эту неправильную запись:

 

if (3 == A)

A += 2;

Последовательность выполнения операторов на языке C++.

 

При написании различных выражений на языке C++ следует учитывать, что каждая операция имеет определенный приоритет, от которого зависит очередность ее выполнения. Для изменения стандартного порядка выполнения операций необходимо использовать круглые скобки. Приоритеты операций языка C++ приведены в табл. 11 (символ точка с запятой используется для отделения операции одного приоритета друг от друга).

 

Табл. 11. Таблица приоритетов

операции в языке C++

Приори тет Обозначение операций Кол-во аргументов Назначение операций
  ::   Используется для указания используемого пространства имен для определенного идентификатора.
  ++; --   Префиксный инкремент и декремент
  []; ();.; ->;   Обращение к элементу массива (указание количества элементов); вызов функции; обращение к полю класса; обращение к полю класса через указатель.
  sizeof; ++; --; ~;!; -; +; &; *; new; delete;   Определение размера в байтах; постфиксный инкремент и декремент; двоичное дополнение; логическое отрицание; унарные минус и плюс; взятие адреса; разименование (или описание ссылочного типа данных); выделение памяти; освобождение памяти.
  ()   Приведение к типу данных.
  .*; ->*   Получение доступа к члену класса, который должен быть указателем, через экземпляр класса или указатель на экземпляр класса.
  *; /; %   Умножение; деление; взятие остатка от деления.
  +; -   Сложение; вычитание.
  <<; >>   Сдвиг на указанное число разрядов влево или вправо.
  <; >; <=; >=   Сравнения
  ==;!=   Сравнения на равенство (неравенство)
  &   Побитовое «И»
  ^   Побитовое исключающее «ИЛИ»
  |   Побитовое «ИЛИ»
  &&   Логическое «И»
  ||   Логическое «ИЛИ»
  ?:   Тернарный оператор, эквивалентный операторы if.
  =; *=; %=; +=; -=; <<=; >>=; &=; |=; ^=   Простой оператор присваивания; составные операторы присваивания.
  throw   Возбуждение исключительной ситуации.
  ,   Последовательное вычисление выражений.

Следует отметить, что:

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

2. Операции с одинаковым уровнем приоритета (номер приоритета в табл. 11) выполняются в порядке очередности.

3. Порядок очередности для унарных операций и операторов присваивания - справа налево, для остальных - слева направо (для операции:: это понятие не определено).

 

 

Рассмотрим пример простой программы, которая решает линейное уравнение вида :

 

 

#include <stdio.h>

int main()

{

float a, b;

printf("Enter the coefficient a of linear equation a*x + b = 0: ");

/*

*/

scanf("%f", &a);

/*




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


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


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



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




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