Тип 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 лекция
Недоступна
Набираем код
Иногда думать не надо, строчить надо! Как ни парадоксально звучит, порой пальцы «запоминают» лучше, чем сознание. Вот почему во время обучения в секретном центре 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 лекция
Недоступна
Ярлыки и числа
Не все ярлыки одинаково полезны, но порой без них образуется хаос. Давайте решим задачу с раздачей ярлыков: пользователь вводит с клавиатуры целое число, а программа ему рассказывает, отрицательное это число или положительное (или нулевое), чётное или нечётное. Зачем нам это? Просто так, для тренировки. Мы же тут учимся, в конце концов!
4
Задача
Java Syntax,  4 уровень,  7 лекция
Недоступна
Описываем числа
Представим себе, что нам нужно разделить числа по каким-то признакам. Например, по чётности или по количеству разрядов. Представили? А теперь за дело: пишем программу, которая описывает введенное пользователем число (оно должно находиться в диапазоне от 1 до 999), указывая в строке вывода, чётное ли это число и сколько в нём цифр.
4
Задача
Java Syntax,  4 уровень,  7 лекция
Недоступна
Положительное число
В школе «Позитивчик» шкала оценки знаний не ограничена ни снизу, ни сверху. Это радует юные дарования (а вы бы не радовались, получив оценку 100500 за изложение?). Все оценки больше нуля считаются хорошими, меньше — плохими. На зачете ученики должны сдать три предмета. Нам нужно ввести три оценки с клавиатуры, и вывести количество позитивных оценок.
4
Задача
Java Syntax,  4 уровень,  7 лекция
Недоступна
Положительные и отрицательные числа
Анализ данных начинается с малого: мы должны понимать, какие данные нам важны и их нужно использовать, а какие нужно отбросить. Решим простую задачу на анализ данных. Введем с клавиатуры три целых числа, затем проанализируем их и выведем на экран количество положительных и отрицательных чисел в исходном наборе.
Комментарии (442)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Ellerina4 уровень
позавчера, 18:21
Иногда ощущение, что последовательность лекций здесь распределялась генератором случайных чисел
Вадим4 уровень, Москва
четверг, 02:19
Подскажите как вы делаете проверку на диапазон чисел, например как в задании: Если введенное число не попадает в диапазон 1 - 999, ничего не выводить на экран. Я пишу: if (a<1||a>1000) и от меня требует что то указать, писал систем эксит, на сайте прога не запускалась, ввожу просто новую переменную например int g; А дальше уже else if и нужные мне условия. Думаю есть способ по приличней)
Игорь Жуков4 уровень, Москва
четверг, 08:35
if (a >= 1 && a <= 999) - Я вот так проверял диапазон. Думаю, что так правильно. И цифра 1 и цифра 999 входит в диапазон чисел 1-999.
Вадим4 уровень, Москва
четверг, 23:32
Спасибо, да так наверное лучше)
Андрей4 уровень, Москва
4 ноября, 21:00
Условие задачи "Положительное число": 1. Программа должна считывать числа c клавиатуры. 2. Программа должна выводить число на экран. 3. Программа должна выводить количество положительных чисел в исходном наборе. 4. Если положительных чисел нет, программа должна вывести "0". Учти, что "0" не относится ни к положительным, ни к отрицательным числам. Я один русский язык понимаю не правильно? Условие №2 говорит о том, что введённое число надо вывести на экран, но у составителей явно какая-то своя логика (
Татьяна12 уровень, Москва
7 ноября, 11:40
2ое условие говорит, что в выводе должно быть только число (не текст, не группа чисел и т.д. - просто одно число). 3-е условие - уточняет, что это должно быть за число.
Елена8 уровень, Ростов-на-Дону
28 октября, 13:25
Подскажите плз, почему при операции инкремента компилятор требует явную инициализацию переменной для типа int? Ведь есть инициализация по умолчанию и int же не может содержать null ? int i; i++; Просит явно задать значение вначале.
Алексей4 уровень, Минск
29 октября, 20:38
переменная i является локальной переменной метода main. Локальные переменные метода должны быть инициализированы перед их использованием.
Елена8 уровень, Ростов-на-Дону
30 октября, 11:18
То есть, если бы это было поле класса, то ее можно было бы оставить без объявления и использовалось бы значение по умолчанию?
mirraim7 уровень, Пермь
7 ноября, 09:42
Может, потому что значение null равно не нулю, а "пусто". Если значения нет,то и увеличивать нечего... Если не проиницализировать переменную перед операцией инкремента/декремента,то программа не скомпилируется.
mirraim7 уровень, Пермь
7 ноября, 09:44
А почему это int не может быть null? Я такой информации не встречала...
Татьяна12 уровень, Москва
7 ноября, 11:44
Мария, потому что int - это примитивный тип, который может хранить только конкретное значение своего типа. null - это ссылка ("пустая"), хранить которые переменная типа int не может. По сути - это из лекции про существующие типы. п.с.: если уж очень хочется null для числового поля - есть Integer, но это уже вопрос будущих лекций.
Виктор Шефф12 уровень, Москва
24 октября, 12:58
Ctrl+d на Windows позволяет копировать строку. А если выделить блок, то скопируется блок кода.
Игорь Жуков4 уровень, Москва
четверг, 08:41
Да ))) Я еще пользуюсь Ctrl + w Очень удобно выделять фрагменты и блоки.
Виктор Шефф12 уровень, Москва
четверг, 15:38
А Ctrl+Alt+L наводят красоту))
leksa8 уровень, Москва
17 октября, 15:06
после решения всех задач 203 темной материи. У вас сколько?
Николай10 уровень, Москва
18 октября, 14:42
183
Life4Infinity9 уровень, Тюмень
19 октября, 10:32
Так же
Oleg Gavrilov8 уровень
20 октября, 11:31
211
Алексей10 уровень, Санкт-Петербург
20 октября, 15:27
213 :)
Виктор Шефф12 уровень, Москва
24 октября, 12:56
219 у меня почему-то 🤔
Санжар Мухитдинов6 уровень, Каттакурган
24 октября, 17:42
220
Dmitriy16 уровень
30 октября, 18:23
216
Игорь Жуков4 уровень, Москва
четверг, 08:42
212
Andriy Pikus9 уровень, Вараш
17 октября, 12:11
Пока непонятно зачем мне boolean,если ето все через if делается?
leksa8 уровень, Москва
17 октября, 14:55
тот же самый вопрос. Пробовал через boolean - не получилось
Виктор Шефф12 уровень, Москва
24 октября, 12:57
Да, задачи странно очень расположены.
Денис Губернаторов7 уровень, Владимир
27 октября, 05:53
В операторе if проверка условия дает результат типа boolean. например i f (a==0) будет true если " а равно 0" и false если "а не равно нулю". ну это есть и в лекции :-)) Основная задача научиться комбинировать условия с помощью логических операндов ( and, or, not) и понимать какой результ будет в результате их сочетания, true или false. таким образом в одном операторе if можно описать ограничения для переменной, а не городить лес из 2,3 и более операторов. что в итоге сокращает время компиляции программы, сокращает количество оЧепяток и делает программу более читаемой
Сергей15 уровень, Москва
10 октября, 11:12
Начинает лень печатать - начинаешь копипастить, Начинаешь копипастить - забываешь исправлять значения в новых копиях, Забываешь исправлять значения - тратишь кучу времени на поиск глупых ошибок. Вот блин =(
Dmitriy16 уровень
30 октября, 18:25
надо привыкать. вся жизнь программиста сводится к копипастам и правкам.
Андрей6 уровень, Самара
10 октября, 08:34
Задача "Ярлыки и Числа" была решена с 8-й попытки (так как не было под рукой JDK). Но с помощью двух методов - выяснения Чет или Нечет с выводом соответствующего выражения, второй метод - это проверка многозначности числа. в Main вывод результата сложения двух методов и Ура! Спасибо за толчок Михаилу Паскевичу! Были сомнения, что это долго, но в реале оказалось быстро и эффективно.
Анон6 уровень, Харьков
10 октября, 12:55
А чем простейшие if-ы не угодили?
Андрей6 уровень, Самара
13 октября, 17:11
просто впервые метод написал)
Rust7 уровень
3 октября, 01:34
Ctrl + Alt + L оч удобно для форматирования кода в программе...мож кому пригодится
Сергей15 уровень, Москва
10 октября, 11:28
что дает эта комбинация? у меня нет АЛТ на маке=(
Александр Бойцов6 уровень, Санкт-Петербург
24 октября, 14:11
выравнивает код. делает его пригодным для чтения))