Найти в Дзене
DEBAGanov

Java 688. В чем разница краткой и полной схемы записи логических операторов?

В Java есть два способа записи логических операторов: краткая форма (&& и ||) и полная форма (& и |).

Краткая форма используется для выполнения логических операций над булевыми операндами и имеет более высокий приоритет. Кроме того, в краткой форме операнды вычисляются лениво, то есть второй операнд не вычисляется, если первый операнд уже дает конечный результат.

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

Вот пример кода, который иллюстрирует разницу между этими двумя формами записи:

boolean a = true;
boolean b = false;
boolean c = true;
boolean d = false;
boolean result;

// Краткая форма, дает true, так как a и b оба являются false; операнда b не вычисляется, т.к. первый операнд уже даёт конечный результат
result = a && b;
System.out.println(result); // Вывод: false
// Полная форма, результат такой же, но оба операнда вычисляются result = a & b;
System.out.println(result); // Вывод: false
// Краткая форма, дает true, так как хотя бы один из операндов (c) является true; операция вычисляется лениво result = c || d;
System.out.println(result); // Вывод: true
// Полная форма, результат такой же, но оба операнда вычисляются result = c | d;
System.out.println(result); // Вывод: true

1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions

Tелеграмм канал: https://t.me/DEBAGanov

Мое резюме: https://github.com/DEBAGanov