가능한 중복 :
Why do we usually use||
not|
, what is the difference?if 문에서 모든 조건을 확인 하시겠습니까?
예 : 나는 언어가 if 문에서 모든 조건을 확인 지원하는지 알아 내야
if(a && b && d)
{
...
}
경우에도 "B" 실패합니다. 이 개념은 무엇이라고 부릅니까?
가능한 중복 :
Why do we usually use||
not|
, what is the difference?if 문에서 모든 조건을 확인 하시겠습니까?
예 : 나는 언어가 if 문에서 모든 조건을 확인 지원하는지 알아 내야
if(a && b && d)
{
...
}
경우에도 "B" 실패합니다. 이 개념은 무엇이라고 부릅니까?
아니요, Java도 C++도 d
을 평가하지 않습니다. 이것은 short-circuit evaluation입니다.
아니요, 이진 논리 연산자는 단락되어 있습니다. 피 연산자를 왼쪽에서 오른쪽으로 평가합니다. 피연산자 중 하나가 표현식이 거짓이 될 것으로 평가하면 다른 피연산자는 평가되지 않습니다.
표준형 이진 연산 & & 및 || short-circuited입니다. 양측의 평가를 원하면 & 또는 | & & 대신에 ||. 예 :
public class StackOverflow {
static boolean false1() {
System.out.println("In false1");
return false;
}
static boolean false2() {
System.out.println("In false2");
return false;
}
public static void main(String[] args) {
System.out.println("shortcircuit");
boolean b = false1() && false2();
System.out.println("full evaluation");
b = false1() & false2();
}
}
물론 '연산자 &&'를 오버로드하지 않는 이상. 둘 다 평가됩니다. 이 얼마나 좋은, 간단한 언어;) – chris