В интернете нашел такие "аргументы" как: ||
, &&
, &
, |
.
Объяснений к ним не было, но я так понял, что &
это "и", а |
это "или", а что тогда делают ||
и &&
я так и не понял.
Простым языком это объясняется так: если сокращённый вариант &&
проверяет первое условие и оно не верно, то второе условие не проверяется, так как общий результат уже точно будет false
; аналогично если ||
проверяет первое условие и оно верно, то второе условие не проверяется, так как общий результат уже точно будет true
. (&
Логическое AND (И); &&
Сокращённое AND; |
Логическое OR (ИЛИ); ||
Сокращённое OR).
& | ~ >> << >>> ^
- побитовые операторы и, или, не, правый сдвиг, левый сдвиг, правый сдвиг без заполнения, исключающее и.
&& || !
- логические операторы и, или, не.
Побитовые операторы выполняют операции с битами;
Например при применении оператора ~
к числу 11001101 (205) все биты инвертируются, и получится число 00110010 (-206).
Логические операторы выполняют логические операции с true
или false
;
Например возьмём такую строку кода: System.out.print(!("".isEmpty()))
. Здесь, метод isEmpty
вернет true, но при помощи оператора !
результат инвертируется и соответственно в консоли появится false.
Также замечу что логические операторы могут быть заменены побитовыми, но не наоборот.
1-символные операторы (&
и |
) - побитовые, они применяются отдельно к каждой паре битов на одинаковой позиции:
0b101 & 0b110
есть 0b100
, и 0b101 | 0b110
есть 0b111
.
или
101 101
& 110 | 110
------ ------
100 111
по таблицaм
& | 0 | 1 | | | 0 | 1 |
--+---+---+ --+---+---+
0 | 0 | 0 | 0 | 0 | 1 |
--+---+---+ --+---+---+
1 | 0 | 1 | 1 | 1 | 1 |
2-символные операторы (&&
и ||
) - это то, о чём вы говорите, логические операторы:
(2 * 2 == 4) && (1 + 1 == 2)
есть true
(2 * 2 == 7) && (1 + 1 == 2)
есть false
(2 * 2 == 7) || (1 + 1 == 2)
есть true
(2 * 2 == 7) || (1 + 1 == 9)
есть false
по подобным таблицам (где вместо 0
- false
, вместо 1
- true
, вместо &
- &&
, и вместо |
- ||
):
&& | false | true | || | false | true |
------+-------+-------+ ------+-------+------+
false | false | false | false | false | true |
------+-------+-------+ ------+-------+------+
true | false | true | true | true | true |
Виртуальный выделенный сервер (VDS) становится отличным выбором
Здравсвуйте! Появилась задача при запросах к API при каких либо "Network error" выводить соответствующее сообщениеВот только Safari (мобильный) например...
Пытаюсь настроить глобально axios во vuejs и вывод сообщений при ошибке
Использую vuejs и axios для отправки запросов к API