Правда или ложь
Boolean
#
Boolean в Java — это логический тип данных. Переменная типа boolean может принимать всего два значения — это правда или ложь — true & false. Эти два значения обозначаются в других языках и часто выдаются на экран как 1 и 0, но всё же не равны этим значениям: например, выражение
boolean b = 0;
приведёт к ошибке при компиляции программы.
Но мы можем сравнить переменные или выполнить логическую операцию с типом данных boolean:
int a = 1, b = 2;
boolean bool = a <= b;
Говоря о булевых или логических типах данных, нам придётся освежить свои воспоминания о булевой алгебре и возможных логических операциях.
Таблица истинности
#
a | b | a & b | a I b | a ^ b | ! a |
---|---|---|---|---|---|
false | false | false | false | false | true |
false | true | false | true | true | true |
true | false | false | true | true | false |
true | true | true | true | false | false |
Давайте представим себе пример из жизни: мы ищем на сайте все статьи, которые мы опубликовали и комментировали. Должны быть два совпадения — это вариант a & b. Или мы ищем все статьи, в которых есть упоминание слов “алгебра” или “математика” — это a | b. А отыскать все статьи, которые написаны не нами, можно, применив логический оператор !a. Стать исключительно космонавтом или медиком — это a ^ b
Это так называемые булевы или логические операции. В интернете много материала по ключевым словам: таблица истинности, булева алгебра, теория множеств, конъюнкция, дизъюнкция.
С помощью таблицы с результатами логических операций можно перепроверить работу Java:
public class NewBoolean {
public static void main(String[] args) {
boolean a, b, c;
a = true;
b = false;
c = a & b;
System.out.println(c); // returns false because only one of the two required valuesis true
int d = 1, f = 2;
boolean bool = d <= f;
int i = 10;
int j = 9;
System.out.println(i > j); // returns true, because 10 is higher than 9
System.out.println(10 == 15); // returns false, because 10 is not equal to 15
int x = 10;
System.out.println(x == 10); // returns true, because the value of x is equal to 10
}
}
Надо понимать, что значение вашего чекбокса (галочки) на сайте Facebook при регистрации — “с правилами ознакомлен и согласен” — и есть значение булевой переменной в программе.
Логические операторы, которые поддерживаются Java
#
Логический операторы | Значение |
---|---|
== | Проверка на соответствие (допустим, что a равен b) |
!= | Не равно (если a не равно b, то) |
! | Отрицание, логическое не |
& | Логическое И, and |
| | Логическое или, or |
^ | Исключительное или, XOR |
&& | Укороченный & |
|| | Укороченный или |
Амперсанд — это название знака &.
Карет (англ. caret) — это название знака ^.
Пайп (pipeline), Вертикальная черта — это название знака |.
Мы ещё раз рассмотрим данные операторы позже. Пока мы должны понимать, что с арифметическими операторами всё немного сложнее, чем хотелось бы.
Булева алгебра
#
Булева алгебра, ударение на первый слог. БУлева.
Принципиально основы булевой алгебры не должны были давать в школе. Программисты учат её в институте.
Давайте я попробую на пальцах рассказать основы и то, что нам понадобится на минимальном уровне.
Дизъюнкция
#
Когда мама ИЛИ папа дают мне деньги на карманные расходы, то я бегу и покупаю себе мороженное.
Знакомая ситуация, деньги можно получить в трёх случах из четырёх. В одном случае же деньги может дать и мама, и папа, тогда и друга можно угостить мороженным.
Это дизъюнкция.
Дизъюнкция — логическое сложение, логическое ИЛИ, включающее или, просто “или”(англ. OR; нем. ODER)
В Java операторы «|» и «||»
boolean a = false, b = true, c;
c = a | b;
Пример в технике; дублирование выключателя или кнопки, дверной звонок и звонок у калитки вызывают одну и туже реакцию — включается мелодия звонка.
В учебниках можно встретить обозначение “больше либо равно единице” — =>1.
Конъюнкция
#
Конъюнкция — логическое “И”, логическое умножение, просто “И”, “AND”, «&».
В Java оператор «&» и «&&».
boolean a = false, b = true, c;
c = a & b;
Если светит солнце “И” у меня выходной, то я иду купаться на озеро.
Пример из жизни. Ядерный чемоданчик могут активировать только два офицера одновременно. По отдельности чемодан остаётся неактивным.
Антиваленц
#
“XOR”, эксклюзивное или, “EOR”, “EXOR”. В Java оператор «^».
boolean a = false, b = true, c;
c = a ^ b;
Только на горных лыжах в Австрии или на лошадях у бабушки в деревне я забываю про свою работу.
Или ты садишься за математику или я расскажу всё отцу.
ИЛИ — ИЛИ. Исключительное или.
Лампочка в больнице может работать от городского электричества или от дизельного генератора в подвале. Но не от двух источников одновременно.
В учебниках можно встретить обозначение “равно единице” — =1.
Отрицание
#
Negation. NOT. В Java оператор «!».
boolean a = false, b;
b = !a;
Давайте представим огромный станок по продольной распилке леса. В цеху есть две кнопки. Зелёная и красная. При включении зелёной пила должна работать. При нажатии на красную пила должна остановится.
Дополнительные материалы
#
- Булева алгебра — самое важное
- Булева алгебра
- Теория множеств
- Очень неплохая статья
- simulator — симулятор логических выражений в электротехнике. Очень помог мне в своё время вспомнить булеву алгебру.
Домашнее задание
#
- Что выдаст программа, если запросить значения a, b, c, d, e, f?
- Посчитайте сначала в уме и проговорите вслух, что делает каждая строчка.
boolean a = (7+8)*5 > 7+8*5; boolean b = (7+8)*4 != 7+4*5; boolean c = 3+4 > 9+1 & 16-5 > 3*4; boolean d = 16/2 < 6+2 | 4+5 <= 4*5; boolean e = !(3*4 < 7+8);
- Напишите программу и проверьте свои результаты.
- Сравните строчку вывода со своей:
System.out.println(a + "n" + b + "n" + c + "n" + d + "n" + e);
- Повторение String: Найдите метод из официальной библиотеки и покажите его работу. По возможности используйте printf.
- Задача. Не для решения в Java, а для попытки понимания логических операций в уме.
Петя, Вася и Маша остались дома одни. Кто-то из них ел варенье. На вопрос мамы, кто это сделал, они сказали:- Петя: “Я не ел. Маша тоже не ела.”
- Вася: “Маша действительно не ела. Это сделал Петя”
- Маша: “Вася врет. Это он съел.”
Выясните, кто ел варенье, если известно, что двое из них оба раза сказали правду, а третий один раз соврал, а один раз сказал правду.
Ответ к задаче для собственной сверки
Почему когда я написал boolean и задал ему условие при котором верно будет или 1 , или 2 , или ничего, когда вводится protocol все мои переменные которые сравнивают начало URL-адреса все они принимают значение true (все проблемы происходят только со «startsWith»)
(16 и 17 строчка)
import java.util.*;
class OSNOVA {
public static void main(String[] args) {
String[] urls = {"https://javarush.com", "https://google.com", "http://wikipedia.org", "facebook.com", "https://instagram", "codegym.cc"};
for (String url : urls) {
String protocol = checkProtocol(url);
String domain = checkDomain(url);
System.out.println("У URL-адреса - " + url + ", сетевой протокол - " + protocol + ", домен - " + domain);
}
}
public static String checkProtocol(String url) {
String str = " ";
boolean a = url.startsWith("https");
boolean aa = url.startsWith("http");
boolean b = a == false & aa == false;
if(a == true | aa == true) {
if (a == true) {
str = "https";
}
else {
str = "http";
}
} else if (b) {
str = "неизвестный";
}
return str;
}
public static String checkDomain(String url) {
String str = " " ;
boolean a = url.endsWith("org");
boolean aa = url.endsWith("com");
boolean aaa = url.endsWith("ru");
boolean aaaa = url.endsWith("net");
boolean b = a==false & aa == false & aaa==false & aaaa==false;
boolean bb = a==true | aa == true | aaa==true | aaaa==true;
if (bb==true) {
if (a==true)
str = "org";
else if (aa == true) {
str = "com";
} else if (aaa==true) {
str = "ru";
}
else if(aaaa==true){
str="net";
}
}
else
str ="неизвестный";
return str;
}
}
Я захотел посмотреть на то как себя будут вести переменные типа boolean но уже в другом коде , в итоге он там так же принимает только значения true и делает не правильный вывод на экран
(7 и 8 строчка)
import java.util.*;
public class OSNOVA1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
String strs = " " ;
boolean a = str.startsWith("a");
boolean aa = str.startsWith("aa");
boolean aaa = a == true | aa==true;
if (aaa){
if (a==true){
strs = str;
System.out.println(strs);
} else if (aa==true) {
strs = str;
System.out.println("Вторая попытка "+strs);
}
}
else
System.out.println("вы не угадали ");
}
}
Можете пожалуйста объяснить почему так происходит или сказать может где допущена ошибка в коде из-за которой происходят эти ошибки
Метод использовался с 5 лекции 10 уровня — вот вид который показали
boolean startsWith(String prefix)
Fedis 610 / 90 / 4 Регистрация: 08.07.2010 Сообщений: 1,893 |
||||||||
1 |
||||||||
27.09.2010, 15:14. Показов 1497. Ответов 6 Метки нет (Все метки)
Я пишу:
Выделяет красным цветом и при компиляции выдает ошибку, попробовал подключить:
То же самое.
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
27.09.2010, 15:14 |
Ответы с готовыми решениями: В чем разница между boolean и Boolean Boolean boolean Boolean Java 6 |
8381 / 3613 / 419 Регистрация: 03.07.2009 Сообщений: 10,708 |
|
27.09.2010, 15:17 |
2 |
i.csproj, какую ошибку? И что пишет, когда выделяет красным?
0 |
476 / 444 / 34 Регистрация: 20.11.2009 Сообщений: 1,293 |
|
27.09.2010, 15:18 |
3 |
А читать сообщение об ошибке мы не умеем?
0 |
610 / 90 / 4 Регистрация: 08.07.2010 Сообщений: 1,893 |
|
27.09.2010, 15:18 [ТС] |
4 |
Проблема решена, надо было указать в public class.
0 |
8381 / 3613 / 419 Регистрация: 03.07.2009 Сообщений: 10,708 |
|
27.09.2010, 15:20 |
5 |
i.csproj, вы попытались объявить переменную за пределами класса?
0 |
610 / 90 / 4 Регистрация: 08.07.2010 Сообщений: 1,893 |
|
27.09.2010, 15:26 [ТС] |
6 |
Да, потому что в Си++ делалось так.
0 |
8381 / 3613 / 419 Регистрация: 03.07.2009 Сообщений: 10,708 |
|
27.09.2010, 15:38 |
7 |
i.csproj, в C++ тоже нельзя, это было немного другое
0 |
The language is Java.
Given this:
public static void main(String[] args) {
Boolean b1 = true;
Boolean b2 = true;
int i1 = 1;
if (b1 = true) //line 5
if (b1 == true} // line 6
I understand that b1 == true
is a equivalent test , which will give the result : true OR false. However, with b1 = true
, which to my understanding is a declaration, which should return nothing but in this case : b1 = true
returns true, exactly the same as ==
test?
Can you explain why? Thanks!
Mysticial
464k45 gold badges334 silver badges332 bronze badges
asked Sep 13, 2012 at 3:58
2
if (identifier = literal)
evaluates to:
identifier = literal;
if (identifier)
first you assign the literal to the identifier. then you test it post assignment
answered Sep 13, 2012 at 4:01
2
When you write
b1 = true;
true
is assigned to b1.
When you write
if(b1 = true)
first the assignation is done and then the expression is evaluated and the expression evaluates to value of b1
i.e. true
.
answered Sep 13, 2012 at 4:48
Bharat SinhaBharat Sinha
13.9k6 gold badges39 silver badges63 bronze badges
Well the reason both return true is simply because both expressions are true.
b1 = true is an assignment —> You tell java that b1 is true and when it evaluates it becomes true because here you simply say b1 is true.
b1 == true is a condition —> This is the line that makes some sense because you are now checking if [value of] b1 equals to true and this will evaluate to true or false depending on if b1 is true. Note that you could just write b1 because it’s already a boolean (true or false).
I don’t think you have realized it but you are using the object-type Boolean and not the primitive type boolean. You should stick to the one with a lowercase b if you don’t really know the diffrence between object-based types and primtive types in Java.
btw I didn’t know that Java allowed assignment to be used as a expression.
answered Oct 13, 2013 at 5:14
Как проверить boolean Java? Для этого используем оператор >, который возвращает булево значение (true или false). a > b равно true, когда значение переменной a больше значения переменной b (операнд слева от > больше правого), а иначе — false.
- В Java для проверки булевого значения используется оператор >, который возвращает true или false в зависимости от того, больше ли операнд слева от >, чем операнд справа.
- Оператор ^ в Java для операндов типа boolean вычисляет исключающее ИЛИ. Он возвращает true, если только один из двух операндов истинен, и false в противном случае. Он всегда вычисляет оба операнда, в отличие от операторов && и ||.
- Boolean в Java занимает 4 байта (32 бита) в стандартной реализации Sun JVM и Oracle HotSpot JVM, так же, как и int.
- Переменные типа boolean могут принимать только два значения: true и false.
- false в Java равно 0.
- Falsy (ложноподобное) значение в JavaScript становится false в булевом контексте, используя преобразование типов. False в JavaScript — это ключевое слово.
- Тип данных boolean может принимать только два возможных значения — true и false.
- BOOLEAN в WinAPI это Pascal-style, оставшийся в функциях WinAPI, разработанных еще на паскале (1 байт, 0 — False, 1 — True), в то время как BOOL (C-Style: 32-битное целое, 0 — False, не-0 — True) является «правильным» типом.
- В C++ переменная типа bool может иметь значения true и false.
- Как работает boolean в Java
- Сколько бит занимает boolean Java
- Какие значения может принимать переменная типа boolean
- Чему равно bool false
- Что в JS false
- Сколько значений у bool
- Чем отличается boolean от boolean
- Какие значения принимает bool
- Почему boolean занимает 1 байт
- Сколько байт занимает 1 символ Java
- Сколько весит bool
- Что такое true и false
- Какому типу относится true false
- Как сравнить тип переменной Java
- Как проверить работает Java или нет
- Что хранит boolean
- В чем разница между операторами == и ===
- Как пользоваться boolean
- Какие есть типы данных в Java
- Что значит команда bool
- Почему в Java есть примитивы
- Что больше long или double Java
- Как хранится double Java
- Как проверить на число Java
- Как проверить есть ли Java
- Какие значения принимает boolean
Как работает boolean в Java
Для операндов типа boolean данный оператор вычисляет исключающее ИЛИ. Он возвращает true, если только один из двух операндов истинен. Другими словами, он возвращает false, если оба операнда ложны либо истинны. В отличие от операторов && и || он всегда вычисляет оба операнда.
Сколько бит занимает boolean Java
Логический типПравить
В стандартной реализации Sun JVM и Oracle HotSpot JVM тип boolean занимает 4 байта (32 бита), как и тип int.
Какие значения может принимать переменная типа boolean
Это тип boolean. Переменные этого типа могут принимать всего два значения — true (истина/правда) и false (ложь).
Чему равно bool false
False — это 0.
Что в JS false
Ложноподобное (falsy) значение — значение, которое становится false в булевом контексте. JavaScript использует преобразование типов, чтобы привести значение к булевому типу, там, где это требуется (например, в условных конструкциях и циклах. Ключевое слово false.
Сколько значений у bool
Boolean (Булев, Логический тип данных) — примитивный тип данных в информатике, которые могут принимать два возможных значения, иногда называемых истиной (true) и ложью (false).
Чем отличается boolean от boolean
Что касается BOOL и BOOLEAN в WinAPI, то «правильный» тип — BOOL (C-Style: 32-битное целое, 0 — False, не-0 — True). А тип BOOLEAN это Pascal-style, оставшийся в WinAPI в функциях, разработанных, когда в ранних версиях Windows API разрабатывался на паскале (1 байт, 0 — False, 1 — True).
Какие значения принимает bool
Bool (C++)
Переменная этого типа может иметь значения true и false.
Почему boolean занимает 1 байт
Потому что boolean — 1 бит. А адресовать один бит нельзя. А количество бит/байт которые можно адресовать (читай, минимальный размер памяти, который можно прочитать) в теории зависит от реальной машины, на которой исполняется java.
Сколько байт занимает 1 символ Java
При этом каждый символ в памяти занимает 2 байта (16 бит), т. к. Java использует кодировку UTF-16. Например, если строка содержит слово на английском языке, то 8 первых бит у каждого символа будут равны 0, поскольку символ ASCII может быть представлен одним байтом вместо двух.
Сколько весит bool
Размер основных типов данных в C++
Тип |
Минимальный размер |
---|---|
Bool |
1 байт |
Char |
1 байт |
Wchar_t |
1 байт |
Char16_t |
2 байта |
Что такое true и false
Логи́ческий тип да́нных, или булев тип, или булевый тип (от англ. Boolean или logical data type) — примитивный тип данных в информатике, принимающий два возможных значения, иногда называемых истиной (true) и ложью (false).
Какому типу относится true false
Булевый (логический) тип
Булевый тип (boolean) может принимать только два значения: true (истина) и false (ложь).
Как сравнить тип переменной Java
Сравнение объектов в Java
Объекты в Java можно сравнивать как по ссылке, так и по значению. Если две переменные указывают на один и тот же объект в памяти, то ссылки, которые хранятся в этих переменных равны. Если сравнить такие переменные с помощью оператора равенства ==, вы получите true, что логично.
Как проверить работает Java или нет
Щелкните кнопку Плагины. Проверьте, установлен ли подключаемый модуль платформы Java (TM):
- Щелкните Инструменты > Дополнения.
- Щелкните вкладку Плагины, затем выделите подключаемый модуль Java 2.
- Если на кнопке для подключаемого модуля отображается Отключить, значит платформа Java включена.
Что хранит boolean
Двоичные переменные хранятся как 16-битные (2-байтные) числа, которые могут принимать значение True (Истина) или False (Ложь). Переменные Boolean отображаются так же: True или False (при печати) или #TRUE# или #FALSE# (при записи # используется).
В чем разница между операторами == и ===
Оператор == сравнивает на равенство, а вот === — на идентичность. Плюс оператора === состоит в том, что он не приводит два значения к одному типу. Именно из-за этого он обычно и используется.
Как пользоваться boolean
Коротко можно записать алгоритм использования Boolean так:
- Создать два объекта.
- Выделить один из них (операнд А).
- Вызывать команду Boolean.
- Щелкнуть по кнопке Pick Operand B.
- Щелкнуть по второму объекту в любом видовом окне.
- Щелкнуть правой кнопкой мыши в активном видовом окне (это для того, чтобы завершить команду).
Какие есть типы данных в Java
Какие типы данных есть в Java:
- целые числа (byte, short, int, long);
- числа с плавающей точкой (float, double);
- логический (boolean);
- символьный (char).
Что значит команда bool
Ключевое слово типа bool — это псевдоним для типа структуры System. Boolean. NET, представляющий логическое значение: true или false. Для выполнения логических операций со значениями типа bool используйте логические операторы.
Почему в Java есть примитивы
У примитивов в программировании, и в Java в частности, есть множество преимуществ: они занимают мало памяти, за счет чего повышается эффективность работы программы, и четко разделены по диапазонам значений. Однако в процессе изучения Java мы уже не раз, словно мантру, повторяли — «в Java все является объектом».
Что больше long или double Java
(9) double превышает long на много-много порядоков, так как внутри пишется в экспоненциальной форме (много статей в инете о представление плавающей точки на уровне железа). И соответственно у тебя может быть усечение значения.
Как хранится double Java
Тип double использует для хранения числовых значений 64 бита, однако некоторые процессоры применяют 80-разрядные регистры с плавающей точкой. Эти регистры обеспечивают дополнительную точность на промежуточных этапах вычисления, т.
Как проверить на число Java
Для проверки строки на цифры, в классе есть статический метод isNumeric(). В качестве аргумента метод принимает последовательность символов CharSequence и возвращает булево значение в зависимости от того, состоит ли строка только из цифр.
Как проверить есть ли Java
Windows 10:
- В Windows нажмите кнопку Пуск
- Прокрутите список программ до папки Java.
- Нажмите на папку Java а затем на пункт About Java чтобы узнать версию Java.
Какие значения принимает boolean
Boolean (Булев, Логический тип данных) — примитивный тип данных в информатике, которые могут принимать два возможных значения, иногда называемых истиной (true) и ложью (false).
Оставить отзыв (1)
- Как проверить на число Java
- Сколько байт занимает 1 символ Java
- Сколько бит занимает boolean Java
- Сколько значений у bool