Логические операции выполняются в последовательности: ! ® && ® ||. Для изменения приоритета выполнения используются круглые скобки.
Логические операции позволяют строить сложные логические выражения, например,
При использовании сложных логических выражений следует стремиться к их упрощению. При этом могут использоваться два правила де Моргана:
- инверсия дизъюнкции равна конъюнкции инверсий и
- инверсия конъюнкции равна дизъюнкции инверсий.
Оператор if реализует в языке алгоритмическую конструкцию обход. Его синтаксис имеет вид:
if (<логическое выражение>) <оператор>;
Если логическое выражение имеет значение истина, то <оператор> языка С/С++ выполняется. Если же оно имеет значение ложь, то не выполняется.
По правилам синтаксиса <оператор> может быть либо простым, либо составным – блоком из нескольких операторов, объединенных фигурными скобками { … } . Каждый из операторов должен заканчиваться ; - точкой с запятой. В конце всей конструкции точка с запятой не является необходимой, хотя и не будет ошибкой (пустой оператор).
При записи оператора if обычно используют следующее форматирование. Если входящий в него оператор один и не очень длинный, то его записывают в той же строке:
...
if (k<n) k++;
...
Если же входящий оператор длинный, то записывают его в следующей строке со сдвигом на две позиции:
...
if (x>0)
s =(2*sin(x+M_PI)+a*(b-c))/(exp(-(x*x)/(a+b)-4*(a-b));
...
Так же обычно поступают, если входящий оператор является составным:
...
if (x>0)
{
...
...
...
...
}
...
В оператор if может входить другой оператор if. Запись
...
if (<лв1>)
if (<лв2>)
if(<лв3>) <оператор>;
...
эквивалентна
...
if (<лв1>&&<лв2>&&<лв3>) <оператор>;
...
Оператор if-else реализует бинарное ветвление и имеет следующий синтаксис:
if (<логическое выражение>) <оператор A>; else <оператор B>;
Если логическое выражение истинно, то выполняется оператор A, а если ложно – то оператор B. Каждый из операторов может быть простым или составным. Форматирование при записи обычно осуществляют следующим образом. Служебное словоelseзаписывают с новой строки под if. Если операторы A и B компактны, то их записывают в тех же соответствующих строках:
...
if (<логическое выражение>) <оператор A>;
else <оператор B>;
...
При длинных операторах удобна их запись с новой строки со сдвигом на две позиции:
...
if (<логическое выражение>)
<оператор A>;
else
<оператор B>;
...
Так же следует форматировать текст, если операторы являются составными:
...
if (<логическое выражение>)
{
...
...
...
}
else
{
...
...
...
}
...
Форматирование структурных конструкций не является формальным правилом языка, но позволяет делать тексты легко читаемыми и уменьшить вероятность ошибок при их разработке.
Блок if не может быть пустым, но может содержать пустой оператор. Однако использование таких записей нецелесообразно, т.к.
...
if (ЛВ);
else <оператор>
...
эквивалентно
...
if (!ЛВ) <оператор>
...
Часто операторы if-else также содержат в своих блоках if и else другие сложные операторы, в том числе и другие if-else. Чтобы не ошибиться при записи вложенных конструкций if-elseрекомендуется записывать их путем постепенной детализации: сначала прописать внешний if-else, обозначив его блоки if и else фигурными скобками, а затем заполнять их, вставляя вложенные в них конструкции. После завершения всей структуры лишние фигурные скобки можно убрать.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.