나는 자바 프로그래밍을 시작한 이후, 나는 모두가 사용 된 것으로 나타났습니다 &&
과 ||
대신 &
과 |
. 그 이유는 무엇입니까? 내가 사용하고 한 &&
그리고 ||
난 당신이 사용할 수 있습니다 알고하지 않았기 때문에 모든 시간 &
과 |
논리 값에.
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] 삭제
몇 마디 만하겠습니다