Почему мы обычно используем `|| `not` | `, в чем разница?

Мне просто интересно, почему мы обычно используем логическое ИЛИ || между двумя логическими значениями, а не побитовое ИЛИ | , хотя оба они работают хорошо.

Я имею в виду, посмотрите на следующее:

if(true  | true)  // pass
if(true  | false) // pass
if(false | true)  // pass
if(false | false) // no pass
if(true  || true)  // pass
if(true  || false) // pass
if(false || true)  // pass
if(false || false) // no pass

Можем ли мы использовать | вместо || ? То же самое с & и && .

214
задан Kev 17 September 2011 в 02:55
поделиться

13 ответов

операторы Java

| являются поразрядными или, || логично или.

-1
ответ дан 23 November 2019 в 04:23
поделиться

Смотрите на:

http://java.sun.com/docs/books/tutorial/java/nutsandbolts/operators.html

| является поразрядно содержащим, ИЛИ

|| логично ИЛИ

-1
ответ дан 23 November 2019 в 04:23
поделиться

|| логическое или и | поразрядное или.

-1
ответ дан 23 November 2019 в 04:23
поделиться

| = поразрядно или, || = логика или

0
ответ дан 23 November 2019 в 04:23
поделиться

|| возвращает булево значение OR'ing два значения (Thats почему его известное как ЛОГИЧЕСКОЕ или)

IE:

if (A || B) 

возвратил бы true, если или A или B являются верными, или ложными, если они - оба ложь.

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

http://en.wikipedia.org/wiki/Bitwise_operation

1
ответ дан 23 November 2019 в 04:23
поделиться

В дополнение к тому, что | побитовый оператор: || оператор короткого замыкания - когда один элемент будет ложью, он не проверит другие.

 if(something || someotherthing)
 if(something | someotherthing)

, если что-то ПРАВДА, ||, не оценит someotherthing, в то время как | сделает. Если переменные в Ваших операторах "if" являются на самом деле вызовами функции, использование || возможно сохраняет большую производительность.

7
ответ дан 23 November 2019 в 04:23
поделиться

| b: оцените b в любой случай

|| b: оцените b только если оценивание ко лжи

8
ответ дан 23 November 2019 в 04:23
поделиться

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

, Кроме того, | может использоваться для выполнения операции битового "ИЛИ" на значениях байта/закорачивать/интервала/длинного. || не может.

81
ответ дан 23 November 2019 в 04:23
поделиться

| побитовый оператор. || логический оператор.

Каждый возьмет два бита и или их.

Каждый определит истину (это ИЛИ что), Если это будет верно, или это верно, то ответ верен.

, О, и блин люди отвечают на эти вопросы быстро.

-2
ответ дан 23 November 2019 в 04:23
поделиться
| is the binary or operator

|| is the logic or operator
3
ответ дан 23 November 2019 в 04:23
поделиться

|| логическое или оператор, в то время как | поразрядное или оператор.

boolean a = true;
boolean b = false;

if (a || b) {
}

int a = 0x0001;
a = a | 0x0002;
8
ответ дан 23 November 2019 в 04:23
поделиться

После тщательного чтения этой темы все еще неясно мне при использовании |, как логический оператор, соответствуют методам шаблона Java.

я недавно изменил код в запросе получения по запросу, обратившись к комментарию, где

if(function1() | function2()){
  ...
}

должен был быть изменен на

boolean isChanged = function1();
isChanged |= function2();
if (isChanged){
  ...
}

, Что фактической является принятая версия?

документация Java не упоминание | как логическая операция ИЛИ незамыкания накоротко.

Не заинтересованный голосованием, но больше обнаружением стандарта?! Обе версии кода компилируют и работают как ожидалось.

0
ответ дан 23 November 2019 в 04:23
поделиться

Примечание: в Java есть | =, но нет || =

Пример того, когда вы должны использовать || это когда первое выражение является тестом, чтобы увидеть, взорвется ли второе выражение. например Используя одиночный | в следующем случае может возникнуть NPE.

public static boolean isNotSet(String text) {
   return text == null || text.length() == 0;
}
2
ответ дан 23 November 2019 в 04:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: