Тип boolean

Открыта

— Привет, Амиго. Хочу рассказать тебе о новом типе данных. Это тип boolean. Переменные этого типа могут принимать всего два значения – true (истина/правда) и false (ложь).

— А как его использовать?

— Этот тип неявно используется во многих местах. Так же, как и результат любого сложения – число, то и результат любого сравнения – истина или ложь – тип boolean. Примеры:

Код Пояснение
1
boolean m;
Два данных выражения эквивалентны. Значение переменой типа boolean по умолчанию false («ложь»).
2
boolean m = false;
3
if (a > b)
    System.out.println(a);
 В переменную m будет записан результат сравнения – true или false. Условие выполняется, если переданное в него выражение истинно – true.
4
boolean m = (a > b);
if (m)
    System.out.println(a);
5
boolean m = (a > b);
if (m == true)
    System.out.println(a);
Не нужно сравнивать логическую переменную (типа boolean) c true или false. Результат сравнения сам будет иметь тип boolean, и в точности будет совпадать со значением сравниваемой переменой: true == true – истина. Результат выражения – true. true == false – ложь. Результат сравнения – false.
6
boolean m = (a > b);
if (m)
    System.out.println(a);

— Еще примеры:

Код Пояснение
1
public boolean isALessThanB (int a, int b)
{
    if (a < b)
        return true;
    else
        return false;
}
Данный метод проверяет, что число А меньше числа Б.

Показаны четыре эквивалентных записи сравнения. Внизу самая компактная и корректная. Всегда старайся использовать компактную запись.

2
public boolean isALessThanB (int a, int b)
{
    boolean m = (a < b);
    if (m)
        return true;
    else
        return false;
}
3
public boolean isALessThanB (int a, int b)
{
    boolean m = (a < b);
    return m;
}
4
public boolean isALessThanB (int a, int b)
{
    return a < b;
}
2
Задача
Java Syntax,  4 уровень,  7 лекция
Недоступна
Набираем код Ӏ Java Syntax: 4 уровень, 7 лекция
Java Syntax: 4 уровень, 7 лекция. Иногда думать не надо, строчить надо! Как ни парадоксально звучит, порой пальцы «запоминают» лучше, чем сознание. Вот почему во время обучения в секретном центре JavaRush вы иногда встречаете задания на набор кода. Набирая код, вы привыкаете к синтаксису и зарабатываете немного материи. А ещё — боретесь с ленью.

— А что мне делать, если я хочу записать, выражение 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))

— Реши пока немного задачек.

4
Задача
Java Syntax,  4 уровень,  7 лекция
Недоступна
Ярлыки и числа
Не все ярлыки одинаково полезны, но порой без них образуется хаос. Давайте решим задачу с раздачей ярлыков: пользователь вводит с клавиатуры целое число, а программа ему рассказывает, отрицательное это число или положительное (или нулевое), чётное или нечётное. Зачем нам это? Просто так, для тренировки. Мы же тут учимся, в конце концов!
8
Задача
Java Syntax,  4 уровень,  7 лекция
Недоступна
Описываем числа
Представим себе, что нам нужно разделить числа по каким-то признакам. Например, по чётности или по количеству разрядов. Представили? А теперь за дело: пишем программу, которая описывает введенное пользователем число (оно должно находиться в диапазоне от 1 до 999), указывая в строке вывода, чётное ли это число и сколько в нём цифр.
4
Задача
Java Syntax,  4 уровень,  7 лекция
Недоступна
Положительное число
В школе «Позитивчик» шкала оценки знаний не ограничена ни снизу, ни сверху. Это радует юные дарования (а вы бы не радовались, получив оценку 100500 за изложение?). Все оценки больше нуля считаются хорошими, меньше — плохими. На зачете ученики должны сдать три предмета. Нам нужно ввести три оценки с клавиатуры, и вывести количество позитивных оценок.
4
Задача
Java Syntax,  4 уровень,  7 лекция
Недоступна
Положительные и отрицательные числа
Анализ данных начинается с малого: мы должны понимать, какие данные нам важны и их нужно использовать, а какие нужно отбросить. Решим простую задачу на анализ данных. Введем с клавиатуры три целых числа, затем проанализируем их и выведем на экран количество положительных и отрицательных чисел в исходном наборе.
Комментарии (625)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Айбек 7 уровень, Бишкек
20 октября, 11:09
нечетность проверяю путем проверки на остаток if (number%2==0) и все он покажет четное или нечетное число
Nokit Hell 4 уровень, Екатеринбург
13 октября, 11:42
пока что я продолжаю ничего не понимать, и просто тратить сферы, но надеюсь что в будущем я стану решать все задачи
Константин 11 уровень, Киев
17 октября, 15:17
Гуглите, спрашивайте, здесь дается основной костяк, знания на который вы наращиваете по мере продвижения сами) Тем более комьюнити готово ответить на многие вопросы)
Алексей 6 уровень
12 октября, 12:50
Пока все лишние попытки из-за пунктуации, то пробела не хватило, то ё не е
Андрей Леонов 6 уровень, Москва
29 сентября, 22:27
В лекции очепятка: 0<a<b Где в записи 3 оператора? Операнда да, 3 в указанном примере, а самих операций сравнения - 2. И еще спорное утверждение "нет оператора с 3 операндами". А как же конструкция _условие_ ? _результат_если_условие_истинно_ : _результат_если_условие_ложно_ В ней как раз 3 операнда.
Dmitry Vasilyev 18 уровень, Саратов
24 сентября, 12:45
Кстати, проверку на чётность с точки зрения производительности намного экономичнее производить с помощью конструкции boolean even = (n & 1) == 0; Всегда так делаю и вам советую. Работает по принципу: у чётного числа в бинарном представлении всегда стоит ноль в конце, а число 1 в бинарном представлении равно единице же, так что сравнение однозначно выдаст true с чётным числом и false с нечётным (на конце у которого всегда будет единица). Гуглим "бинарное и", если ещё не поняли, как оно работает )
Alex 7 уровень, Москва
9 октября, 18:43
Тогда и ноль будет четным. Непонятно насколько это корректно...
Dmitry Vasilyev 18 уровень, Саратов
10 октября, 04:22
Чётность в теории чисел — характеристика целого числа, определяющая его способность делиться нацело на два. Ноль делится на два без остатка, нацело, следовательно, ноль - число чётное. Я, кстати, только сейчас понял, почему ноль чётен, пока объяснял ))) Хотя, в лекциях где-то про это написано, кажется, но без объяснения, просто как факт даётся.
Alex 7 уровень, Москва
понедельник, 18:18
А если потребуются другие характеристики? Например, для любого четного числа верно будет, что при возведении в степень самого себя, результат будет четным? Для всех, кроме 0. Ответ будет 1 - нечетный.
Dmitry Vasilyev 18 уровень, Саратов
вторник, 06:24
Ноль в степени ноль равен нулю. Ноль - число чётное. Следовательно, таки ЛЮБОЕ чётное число при возведении самого себя в степень остаётся чётным, математика реабилитирована )
Dmitry Vasilyev 18 уровень, Саратов
24 сентября, 12:36
Задачу "Описываем числа" прошёл с 9-го раза, хотя решил правильно с первого. Причина: буква "е" не равна букве "ё" в словах "чётное" и "трёхзначное". Это стоило бы указывать в условии, потому что всё это, мягко говоря, не очевидно для конечного пользователя )
Will Fight 18 уровень
26 сентября, 20:26
в связи с автоматической проверкой (валидацией вывода) уже с первого уровня вывод обычные юзеры предпочитают копипастить прямо с условия задачи. Поэтому ascii код буквы ё проблем не вызывает
Никита Грицунов 7 уровень, Сочи
29 сентября, 17:23
Точно! Пару раз из-за этого были проблемы, теперь всегда: ctrl+c, ctrl+v
Сергей Волков 11 уровень, Киев
22 сентября, 16:53
я правильно понимаю: !(a && b) = a! || !b это закон Де Моргана?
Lev Moiseev Software Developer в Первый БИТ
21 сентября, 20:30
Запись из примеров (a>10) || (a<100) всегда будет равна true при любом числовом значении a Наверно хотели написать (a<10) || (a>100)
Machaon Black 16 уровень, Одесса
12 сентября, 11:18
За неделю выучила здесь больше, чем за два курса универа
Никита Филипчук 9 уровень, Одесса
11 сентября, 07:43
***STORYLINE*** Kim Lee-Ling (конспиративный позывной "Chinese Flash") Возраст: 28 лет Боевое искусство: эксперт по традиционным метательным ножам "Кунай" ----- Была завербована в команду JavaRush лично капитаном Бобровым, впоследствии передана на первичную интеграцию Рише Гейтсмену (с которым у неё вскоре случился конфликт)... ***STORYLINE***