В программах часто возникает необходимость описывать более сложные логические выражения.
Рассмотрим пример: 'Пример, подводящий читателя к применению более сложных логических условий DIM zahl1%, zahl2% CLS INPUT "Ввести число 1, zahl1% INPUT "Ввести число 2", zahl2% 'Конец программы
Предположим входные данные должны вводится только тогда, когда zahll % больше нуля, и одновременно zahl1% меньше нуля. Как проверить одно из условий, Вы уже знаете. Рассмотрим способ, позволяющий объединить оба условия.
Логическое И (AND)
AND (И) коньюктивно объединяет логические условия: Условие_1 AND Условие_2 [AND Условие_3] …
Результат такого объединения лишь тогда истинен, когда истинно каждое отдельное условие.
Пример : DIM zahl1%, zahl2% CLS DO INPUT "Введите число 1> 0", zahl1% INPUT "Введите число 2 < 0 ", zahl2% LOOP UNTIL zahll %>0 AND zahl2% < 0 PRINT "Спасибо за корректный ввод" 'Конец программы
Только тогда, когда zahl1% > 0 и zahl2%< 0, значение всего логического выражения станет истинно, а значит, выполнение цикла закончится.
Логическое ИЛИ (OR) OR (ИЛИ) дизъюнктивно объединяет логические условия: Условие_1 OR Условие_2 [OR Условие_3...]
Результат такого объединения только тогда ложен, когда ложны все составляющие.
Пример: DIM zahl1%, zahl2% CLS DO PRINT "Число 1 или число 2 должно быть больше нуля" INPUT "Введите число 1", zahl1% INPUT "Введите число 2", zahl2% LOOP UNTIL zahl1% >0 OR zahl2% >0 PRINT "Спасибо за корректный ввод" 'Конец программы
В этом примере выход из LOOP-цикла не произойдет только в том случае, если значение каждого из вводимых чисел будет меньше или равно нулю.
Логическое отрицание (NOT) NOT инвертирует (меняет на противоположное) значение логического выражения, т.е. то, что было "ложь", становится "истиной" и наоборот.
Пример: DIM zahl% CLS INPUT "Введите число " zahl% IF NOTzahl% > 0 THEN PRINT "Число не больше нуля" ELSE PRINT "Число больше нуля" END IF 'Конец программы