왜 항상 사용해야하나요 || 대신 | 및 & 대신 &&?

나는 자바 프로그래밍을 시작한 이후, 나는 모두가 사용 된 것으로 나타났습니다 &&||대신 &|. 그 이유는 무엇입니까? 내가 사용하고 한 &&그리고 ||난 당신이 사용할 수 있습니다 알고하지 않았기 때문에 모든 시간 &|논리 값에.

class A{static{
  boolean t = true;
  boolean f = false;
  System.out.println("&ff " + (f&&f) + " " + (f&f));
  System.out.println("&ft " + (f&&t) + " " + (f&t));
  System.out.println("&tf " + (t&&f) + " " + (t&f));
  System.out.println("&tt " + (t&&t) + " " + (t&t));
  System.out.println("|ff " + (f||f) + " " + (f|f));
  System.out.println("|ft " + (f||t) + " " + (f|t));
  System.out.println("|tf " + (t||f) + " " + (t|f));
  System.out.println("|tt " + (t||t) + " " + (t|t));
}}

내가 말할 수있는 한 그들은 동일합니다.

$ javac A.java && java A
&ff false false
&ft false false
&tf false false
&tt true true
|ff false false
|ft true true
|tf true true
|tt true true
Exception in thread "main" java.lang.NoSuchMethodError: main

어떤 식 으로든 내 코드를 사용 ||하고 &&개선 합니까 ?


간단한 테스트로 수백 번의 발생을 짧은 형식으로 대체했으며 모든 단위 테스트가 여전히 통과했습니다.

패트리샤 샤나 한

이미 지적하고있다 &&||단락 회로 평가를 수행. &|부울 피연산자를 사용하여 동일한 연산을 수행하지만 첫 번째 피연산자의 값에 관계없이 두 피연산자를 모두 평가합니다.

왼쪽 피연산자가 오른쪽 피연산자의 예외없는 평가를위한 전제 조건 인 경우와 같이 사용하는 것이 중요한 경우가 있습니다.

대부분의 경우 중요하지 않습니다. 나는 일반적인 선택이기 때문에 가독성을 위해 &&||이러한 경우를 사용 합니다. 부울 피연산자를 사용 &하거나 |함께 사용하면 대부분의 Java 프로그래머가 멈추고 생각하고 이에 대한 특정 이유가 있는지 스스로에게 물어 보는 경향이 있습니다. 나는 그것이 C와 C ++로부터의 상속 때문에 그렇게 흔한 일이라고 생각한다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관