— Привет, Амиго. Хочу рассказать тебе о новом типе данных. Это тип boolean. Переменные этого типа могут принимать всего два значения – true (истина/правда) и false (ложь).
— А как его использовать?
— Этот тип неявно используется во многих местах. Так же, как и результат любого сложения – число, то и результат любого сравнения – истина или ложь – тип boolean. Примеры:
| Код | Пояснение | |
|---|---|---|
| 1 | |
Два данных выражения эквивалентны. Значение переменой типа boolean по умолчанию false («ложь»). |
| 2 | |
|
| 3 | |
В переменную m будет записан результат сравнения – true или false. Условие выполняется, если переданное в него выражение истинно – true. |
| 4 | |
|
| 5 | |
Не нужно сравнивать логическую переменную (типа boolean) c true или false. Результат сравнения сам будет иметь тип boolean, и в точности будет совпадать со значением сравниваемой переменой: true == true – истина. Результат выражения – true. true == false – ложь. Результат сравнения – false. |
| 6 | |
— Еще примеры:
| Код | Пояснение | |
|---|---|---|
| 1 | |
Данный метод проверяет, что число А меньше числа Б. Показаны четыре эквивалентных записи сравнения. Внизу самая компактная и корректная. Всегда старайся использовать компактную запись. |
| 2 | |
|
| 3 | |
|
| 4 | |
— А что мне делать, если я хочу записать, выражение 0<a<b?
— Ну, выражений, которые включают три оператора, в Java нет, поэтому тут нужно воспользоваться такой конструкцией: (0<a) И (a<b)
— Так и писать И?
— Подожди, сейчас все объясню. В Java есть три логических оператора: AND (и), OR (или) и NOT (не). С помощью них можно строить условия различной сложности. Эти операторы можно применять только к выражению, имеющему тип boolean. Т.е. (a+1) AND (3) написать нельзя, а (a>1)AND (a<3) – можно.
— Оператор NOT – унарный – его действие распространяется только на выражение справа от него. Он больше похож на знак «минус» перед отрицательным числом, чем на знак умножить
— С переменными типа boolean (логический тип) можно выполнять различные операции.
— А какие?
— Вот сейчас мы их и рассмотрим:
| Логический oператор | Обозначение в Java | Выражение | Результат |
|---|---|---|---|
| AND (и) | && | true && true | true |
| true && false | false | ||
| false && true | false | ||
| false && false | false | ||
| OR (или) | || | true || true | true |
| true || false | true | ||
| false || true | true | ||
| false || false | false | ||
| NOT(не) | ! | ! true | false |
| ! false | true | ||
| Распространённые комбинации и выражения | m && !m | false | |
| m || !m | true | ||
| ! (a && b) | !a || !b | ||
| ! (a || b) | !a && !b | ||
— А можно побольше примеров?
— Конечно:
| Запись в Java | Логическая запись | Пояснение |
|---|---|---|
| (a<3) && (a>0) | (a < 3) AND (a>0) | a<3 и a>0 |
| (a>10) || (a<100) | (a>10) OR (a<100) | a>10 или a<100 |
| (a<b) && (!(c<=d)) | (a<b) AND (NOT (c<=d)) | a<b и (не (c<=d)) |
— Реши пока немного задачек.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ