Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
вопрос-ответ.docx
Скачиваний:
21
Добавлен:
11.05.2015
Размер:
123.88 Кб
Скачать

9.Операции отношений и логические операции. Операции сравнения

*логические операции

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

! - отрицание (логическое НЕТ);

&& - коньюнкция (логическое И);

|| - дизьюнкция (логическое ИЛИ).

Общий вид операции отрицания:

!<выражение>

Общий вид операций коньюнкции и дизьюнкции

<выражение1> <знак_операции> <выражение2>

*Операции сравнения

== - равно или эквивалентно;

!= - не равно;

< - меньше;

<= - меньше либо равно;

> - больше;

>= - больше либо равно.

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

Общий вид операций отношений:

<выражение1> <знак_операции> <выражение2>

Общие правила:

- операндами могут быть любые базовые (скалярные) типы;

  • значения операндов перед сравнением преобразуются к одному типу;

- результат операции отношения - целое значение 1, если отношение истинно, или 0 в противном случае. Следовательно, операция отношения может использоваться в любых арифметических выражениях.

10. Операторы безусловной и условной передачи управления. .

*Оператор безусловного перехода goto

В языке Си предусмотрен оператор goto, общий вид которого:

goto метка ;

Он предназначен для передачи управления оператору, помеченному указанной меткой. Метка представляет собой идентификатор с символом «двоеточие» после него, например, пустой помеченный меткой m1 оператор:

m1: ;

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

for (...)

for (...) {

...

if (ошибка) goto error;

}

...

error: операторы для устранения ошибки

*Оператор условной передачи управления if

Форматы оператора if:

1. Полная форма: if (логическое_выражение) оператор_1;

else оператор_2;

Если логическое выражение истинно, то выполняется оператор_1, иначе – оператор_2.

2. Сокращенная форма: if (логическое_выражение) оператор_1;

Если логическое_выражение истинно, то выполняется оператор_1.

3. Вложенная форма:

if (логическое_выражение_1) оператор_1;

else if (логическое_выражение_2) оператор_2;

else оператор_3;

Если логическое_выражение_1 истинно, то выполняется оператор_1, иначе, если логическое_выражение_2 истинно, то выполняется опера-тор_2, иначе выполняется оператор_3.

11.Операции «,» и «?».

Операция «,» (запятая)

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

выражение_1, …, выражение_N;

выражения 1, 2,…, N вычисляются последовательно друг за другом и результатом операции становится значение последнего выражения N, например:

m = ( i = 1, j = i ++, k = 6, n = i + j + k );

получим последовательность вычислений: i =1, j =i =1, i =2, k=6, n=2+1+6, и в результате m=n=9.

. Условная операция «? :»

Если одно и то же выражение (или переменная) вычисляется по-разному в зависимости от некоторого условия, вместо оператора if можно использовать более короткую запись - условную операцию. Эта операция – тернарная, т.е. в ней участвуют три операнда. Формат написания условной операции следующий:

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

если выражение 1 (условие) отлично от нуля (истинно), то результатом операции является значение выражения 2, в противном случае – значение выражения 3. Каждый раз вычисляется только одно из выражений 2 или 3.

На рисунке приведена схема вычисления результата, которая аналогична схеме полного оператора if (см. рисунок):