— Привет, Амиго. Хочу рассказать тебе о новом типе данных. Это тип 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)) |
— Реши пока немного задачек.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ