Логические операторы в Java - Вопросы
Всего: 2 вопросов
1. В чём особенность операторов сокращённого вычисления (short-circuit) && и ||?
В чём особенность операторов сокращённого вычисления (short-circuit) && и ||?
Операторы && и || не тратят время на бессмысленные вычисления. Оператор && сначала вычисляет левый операнд, и если он равен false, правый операнд уже не вычисляется, так как результат гарантированно будет false. Оператор || работает аналогично: если левый операнд равен true, результат гарантированно будет true, поэтому правый операнд не вычисляется. В отличие от них, одиночные & и | вычисляют оба операнда всегда, даже когда результат уже известен.
2. Чему равно значение выражения !true & false в Java?
Чему равно значение выражения !true & false в Java?
Сначала выполняется унарный оператор ! — он имеет наивысший приоритет среди логических операторов: !true даёт false. Затем вычисляется false & false, что даёт false. Итоговое значение всего выражения — false.