Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс_ред1 С#.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
1.8 Mб
Скачать

Логические операторы

Логические операторы предназначены для выполнения операций над данными, объявленными в программе при помощи ключевого слова boo1.

Напомним, что логические переменные могут принимать одно из двух значений — true (истина) или false (ложь). В языке С# эти значения никак не соотносятся с числами 1 и 0. Результатом выполнения логического оператора всегда является логическое значение true или false .

В языке С# имеется три логических оператора:

Символ

Оператор

&&

Логический оператор И

||

Логический оператор ИЛИ

!

Унарное логическое отрицание

Если оба операнда логического оператора И равны true, то результатом выполнения этой операции будет true . В противном случае результат будет false. Если хотя бы один из операндов логического оператора ИЛИ равен true, то результатом выполнения этой операции будет true. Если же оба операнда равны false, то и результат будет тоже равен false.

Вот пример использования логических операторов:

bool op = true;

bool result1 = op && false;

bool result2 = op || false;

bool result3 = !op;

В результате выполнения этих операторов в переменных result1 и result3 будет храниться значение false , а в переменной result2 — значение true.

Логические операторы широко используются в различных управляющих конструкциях языка, о которых вы узнаете в следующем разделе данного курса.

Операторы отношения

Эти операторы иначе именуются операторами сравнения и знакомы из курса элементарной математики. Результат выполнения бинарных операторов отношения представляется в виде логических значений true или false.

Символ

Оператор

==

Равно

!=

Не равно

<

Меньше

<=

Меньше или равно

>

Больше

>=

Больше или равно

Операторы отношения позволяют сравнивать значения переменных и выражений между собой. Например, результат вычисления выражения 2 < 4 будет true , а результат вычисления выражения 1 = = 2 будет равен false.

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

Приоритеты операторов

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

Вот пример такого составного выражения:

int х = 1;

int у = 2;

int result = 2 + х * 3 / 5 + у++ / 2;

Рассматривая такое выражение, трудно сразу сказать, какое значение получит переменная result после его вычисления. Проблема состоит в том, что далеко не всегда очевиден порядок выполнения отдельных операторов в составном выражении. Однако в зависимости от порядка выполнения операторов может получиться разный результат.

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

int х = 2 + 3 * 4;

Если вычислять это выражение слева направо, то сначала нужно сложить числа 2 и 3, а затем результат умножить на 4. После подобных вычислений значение переменной х будет равно 20.

Если же вычислять это выражение справа налево, то сначала нужно умножить 3 на 4, а затем к результату добавить 2. При этом в переменную х будет записано значение 14.

Чтобы избежать неоднозначности, все операторы в языке С# (как, впрочем, и в других языках программирования) имеют свой приоритет. Более приоритетные операторы выполняются в первую очередь. В приведенном выше примере оператор умножения имеет высший приоритет по сравнению с оператором сложения, поэтому в результате вычисления получится значение 14.

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

int х = ( 2 + 3 ) * 4;

Таким образом мы сообщаем компилятору, что вначале нужно сложить числа 2 и 3, а затем умножить полученный результат на 4. Для наглядности мы рекомендуем в сложных выражениях всегда задавать порядок выполнения операций явным образом. Это поможет избежать ошибок, связанных с неправильной оценкой приоритетов операторов.

Сведем в единую таблицу приоритеты всех операторов С#. С некоторыми операторами, представленными в ней, вы уже знакомы, а с некоторыми познакомитесь позже.

Операторы

Категория

х.у f(x) а[х] х++ х-- new typeof checked

unchecked

Простые операторы

+ - ! ~ ++x --x (T) x

Унарные операторы

* / %

Операторы умножения и деления

+ –

Аддитивные операторы

<< >>

Операторы сдвига

< > <= >= is as

Операторы отношения и проверки типа

== !=

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

&

Поразрядный оператор И

^

Поразрядный оператор ИСКЛЮЧАЮЩЕЕ ИЛИ

|

Поразрядный оператор ИЛИ

&&

Логический оператор И

||

Логический оператор ИЛИ

?:

Оператор условия

= *= /= %= += -= <<= >>=

&= ^= |=

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

Как видите, по приоритету вначале выполняются простые операторы, затем унарные, после них — операторы умножения и деления, затем — сложения и сдвига. Операторы отношения, равенства и неравенства, а также логические операторы имеют низкий приоритет. Но самый низкий приоритет отдается операторам присваивания (простым и составным).

Алгоритмизация и решение задач

Понятие алгоритма

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

Рассмотрим «алгоритм активного пробуждения», которому следует некий студент для того, чтобы встать с постели и отправиться на занятия:

  • Встать с постели.

  • Снять пижаму.

  • Принять душ.

  • Одеться.

  • Позавтракать.

  • Отправиться на занятия.

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

  • Встать с постели.

  • Снять пижаму.

  • Одеться.

  • Принять душ.

  • Позавтракать.

  • Отправиться на занятия.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]