Тип 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 лекция
Недоступна
Положительные и отрицательные числа
Анализ данных начинается с малого: мы должны понимать, какие данные нам важны и их нужно использовать, а какие нужно отбросить. Решим простую задачу на анализ данных. Введем с клавиатуры три целых числа, затем проанализируем их и выведем на экран количество положительных и отрицательных чисел в исходном наборе.
Комментарии (490)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Дмитрий10 уровень
13 февраля, 04:34
5 код, это как делать не надо?
Илья Соколов8 уровень, Москва
11 февраля, 23:45
"Почит все здачи со второй папытки. Орофография мой коёк"
Илья5 уровень, Москва
12 февраля, 13:43
"коёк" было написано специально?)
Сергей4 уровень, Пермь
18 февраля, 10:08
Почит, здачи, папытки не смутило?)
Ксенія Українка5 уровень, Киев
суббота, 17:38
дабы скопировать текст - выдели и нажми ctrl + c вставить - ctrl + v не благодари
Юрий5 уровень, Минск
2 февраля, 22:08
Scanner scanner = new Scanner(System.in); int a = scanner.nextInt(); if (a % 2 == 0 && a >= 100 && a <= 999) { System.out.println("четное трехзначное число"); } else if (a % 2 != 0 && a >= 100 && a <= 999) { System.out.println("нечетное трехзначное число"); } else if (a % 2 == 0 && a >= 10 && a <= 99) { System.out.println("четное двухзначное число"); } else if (a % 2 != 0 && a >= 10 && a <= 99) { System.out.println("нечетное двухзначное число"); } else if (a % 2 == 0 && a >= 1 && a <= 9) { System.out.println("четное однозначное число"); } else if (a % 2 != 0 && a >= 1 && a <= 9) { System.out.println("нечетное однозначное число"); } else if (a < 0 || a > 999) ; } } Пишет, что ошибка в выведении 2-х значных чисел(четных и нечетных). Ввожу с клавиатуры, все правильно. Кто-нибудь может пояснить в чем может быть проблема?
Юрий5 уровень, Минск
2 февраля, 22:18
Нашел ошибку... Смешная Двузначное, а не двухзначное!!! Надо копировать, что они там спрашивают
syurmol5 уровень, Москва
11 февраля, 13:09
Знание русского языка тоже не помешает )))
Boris4 уровень
25 января, 17:29
Последняя задача самая легкая, мне очень понравилась.
Андрей Мельников7 уровень, Львов
23 января, 07:15
& - "И". Вычисляются оба операнда. && -сокращенное "И", если первый операнд=false, то второй игнорируется, результат=false. Простой пример.
if (a != 0 & b / a < 1) {
//сделать что-то
}
В этом случае при a=0 будет ошибка во время выполнения, а если написать && - нет, потому что деление на 0 не будет выполняться. Аналогично OR(| и ||).
Александр12 уровень, Москва
22 января, 22:12
Если переменной типа boolean не задать значение, то компилятор ругается, т.е. у него нет значения по умолчанию (по крайней мере в приведенных в лекции примерах)
Rustam7 уровень, Санкт-Петербург
15 января, 12:52
Добрый день! Почему везде во всех задачах после прохождения главы про bufferedreader в методе main пишется throws Exception? Что это значит и можно ли без него?
Роман7 уровень, Чебоксары
16 января, 21:03
Это что-то вроде оператора для обхода ошибок которые могут появится при вводе данных. Будет изучаться в дальнейших лекциях, вроде как, а пока что, можешь не обращать внимания, просто всегда добавляй если собираешься что-то вводить.
Денис11 уровень, Москва
13 января, 18:21
Привет! Ленивый вариант для задачи "Положительное число": byte i = 0; if(Integer.parseInt(bufferedReader.readLine()) > 0) i++; if(Integer.parseInt(bufferedReader.readLine()) > 0) i++; if(Integer.parseInt(bufferedReader.readLine()) > 0) i++; System.out.println(i);
Aliaksandr Saŭčanka6 уровень
5 февраля, 16:08
Зачем i++ в System.out.println(i++)?
Денис11 уровень, Москва
5 февраля, 20:34
Спасибо. Поправил ))
Владимир 10 уровень, Витебск
12 января, 22:00
Привет)Решил поделиться наблюдениями. Большинство уже пользуются конструкцией 1 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 2 String s = reader.readLine(); 3 int a =Integer.parseInt(s); Но ее можно еще укоротить 1 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 2 int a = Integer.parseInt(reader.readLine()); И это еще не все. Большинство для ввода нескольких переменных создают несколько объектов для в ввода хотя это не обязательно,можно использовать уже имеющийся. Пример 1 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); // создаем объект для принятия данных 2 int a = Integer.parseInt(reader.readLine()); // считываем введеное число с консоли и преобразуем в число типа int 3 int b = Integer.parseInt(reader.readLine()); // считываем следующее введеное число с консоли при помощи BufferedReader reader еще раз и преобразуем в число типа int 4 int c = Integer.parseInt(reader.readLine()); // считываем следующее введеное число с консоли при помощи BufferedReader reader и преобразуем в число типа int. И так далеее. Надеюсь это в будущем сократит ваш код)
Anna K10 уровень, Киев
13 января, 18:06
это правда, тут описывалось Считывание с клавиатуры — «ридеры»
Ксенія Українка5 уровень, Киев
суббота, 18:47
оч интересно откуда данные
Student9 уровень, Алматы
7 января, 07:04
public boolean isALessThanB (int a, int b) { return a < b; } как работает этот код?
Copernik34 уровень, Санкт-Петербург
7 января, 16:51
Вычисляет результат выражения "a<b" и возвращает этот результат. Если a меньше b - вернёт true Если a больше b - вернёт false Название функции говорит само за себя - АМеньшеБ?
Student9 уровень, Алматы
7 января, 17:24
ясно, спасибо!