
- •Тема №1 Типы данных, преобразование типов
- •Тема №2 Массивы, как параметры функций и процедур
- •Тема №з Условный оператор. Логические выражения
- •Тема №4 Функции и их использование
- •Тема №5 Оператор альтернативного выбора
- •Тема №6 Оператор цикла со счетчиком
- •Тема№7-8
- •Тема №9 Логические операторы и логические выражения. Тип boolean
- •Тема№10 Одномерные и двумерные массивы
- •Тема №11 Условный оператор
- •Тема№12 Процедуры. Глобальные и локальные переменные
- •Тема№13 Строковые переменные. Процедуры и функции для работы со строками
- •Тема№14 Двумерные массивы и вложенные циклы
- •Тема№15 Структура программы в языке Pascal
- •Тема№16 Операторы присваивания, ввода, вывода. Соответствие типов
- •Тема№17 Записи. Синтаксис описания записей
- •Тема№18 Сравнение массивов и записей. Работа с полями записей
- •Тема№19 Символьные переменные Операции и функции для работы с ними.
- •Тема №20 Арифметические выражения. Стандартные математические функции
- •Тема№21 Типизированные файлы. Процедуры и функции для работы с ними
- •Тема№22 Типы файлов. Процедуры и функции для работы с ними
- •Тема№23 Текстовые файлы. Процедуры и функции для работы с ними
- •Тема№24 Арифметические и логические операции и их приоритет
- •Тема№25 Область видимости переменных
- •Тема№ 26 Механизмы передачи параметров процедурам
- •Тема№ 27 Запись и чтение файлов. Открытие и закрытие файлов
- •Тема№28 Понятие алгоритма. Линейный, разветвляющийся, циклический алгоритмы.
- •Тема№29 Структурированные типы: массивы, строки, записи, файлы.
Тема №з Условный оператор. Логические выражения
Логические и условные операторы
Все программы, которые мы писали до сих пор, были линейными, т.е. все действия в них выполнялись последовательно именно в том порядке, в котором в них располагались операторы. Иногда, однако, требуется опускать или многократно повторять некоторые из них. Делать это позволяют управляющие конструкции язык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) (заключения нескольких операторов в фигурные скобки) позволяют помещать в каждую из двух своих ветвей произвольное число операторов. Это позволяет разделить поток управления программы на произвольное число частей.