Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы по информатике.doc
Скачиваний:
257
Добавлен:
22.04.2019
Размер:
469.5 Кб
Скачать

Тема №з Условный оператор. Логические выражения

Логические и условные операторы

Все программы, которые мы писали до сих пор, были линейными, т.е. все действия в них выполнялись последовательно именно в том порядке, в котором в них располагались операторы. Иногда, однако, требуется опускать или многократно повторять некоторые из них. Делать это позволяют управляющие конструкции языкa Java, к которым принадлежат условные операторы, операторы циклов и операторы обработки исключений. С первыми из них мы познакомимся в этом параграфе, а циклы и исключения отложим до 5.

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

Подробному изложению основ теории предикатов (именно так называют по-научному логические выражения) посвящен следующий параграф, а сейчас ограничимся некоторой минимальной информацией. Любые объекты одного и того же типа можно сравнивать на равенство и неравенство -- первый из операторов обозначается в языке Java символами ==, а второй -- с помощью символов !=. Стандартные математические обозначения для них -- это и соответственно.

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

Объекты числовых типов можно сравнивать между собой также и с помощью таких операторов, как < (меньше), <= (меньше или равно), > (больше) и >= (больше или равно), математическими обозначениями для которых являются , , и .

Из простейших логических выражений, к которым относятся логические переменные и результаты сравнений, можно конструировать более сложные, используя следующие логические операторы: унарный оператор отрицания !, бинарные операторы логического И (And) &, логического Или (Or) |, исключающего Или (sl Xor) ^, равенства ==, неравенства !=, условного И (short circuit And) && и условного Или (short circuit Or) ||, а также тернарный оператор условия ?:.

В математической теории исчисления предикатов отрицание принято обозначать символом (или просто ), операторам логического Или и И соответствуют дизъюнкция и конъюнкция , а равенство (эквивалентность) обозначают символами , или просто .

Отрицание логического выражения, имеющего значение (Ложь), есть (Истина), и наоборот. Дизъюнкция истинна, если истинен хотя бы один из ее аргументов, а конъюнкция -- только при истинности обоих. Исключающее Или истинно тогда и только тогда, когда истинен ровно один из аргументов, а назначение и истинность остальных логических операторов будут описаны чуть позже.

Управляющая конструкция if-else в зависимости от значения логического выражения позволяет выполнять различные части програмного кода. В общей форме этот оператор записывается следующим образом:

if (логическое_выражение) блок1; [ else блок2; ]

Если условие, задаваемое заключенным в круглые скобки логическим выражением истинно, то будет выполняться блок1, иначе -- блок2. Часть else может и отсутствовать.

Управляющие конструкции if и if-else могут быть вложенными, и с помощью блока (block) (заключения нескольких операторов в фигурные скобки) позволяют помещать в каждую из двух своих ветвей произвольное число операторов. Это позволяет разделить поток управления программы на произвольное число частей.