2017-09-18 4 views
-1
private void case1(Tree t, Tree root) { 
    //System.out.println(root.left != t); 
    if (root.left != t || root.right != t) 
     case1(t, (root.value > t.value) ? root.left : root.right); 
    else { 
     if (root.left == t) 
      root.left = null; 
     else 
      root.right = null; 
    } 

이유는 root.left는 't'실제로 동일한 경우에도 조건이 TRUE 평가 IF 처음이다? 나는 print to console을 통해 확인했으며 첫 번째 조건은 false가되었다. 따라서 IF 조건은 거짓이어야하지만 문구는 여전히 평가됩니다. 전체 코드는 꽤 큽니다. 필요한 경우 더 많은 스 니펫을 제공 할 수 있습니다. 같은IF (A || B) 조건이 조건 중 하나가 거짓 일 때 TRUE로 평가되는 이유는 무엇입니까?

+0

이 언어 별입니까? – TylerH

+1

'F or T'는 참입니다 ... 첫 번째 용어가 거짓으로 나오면 결과를 결정하기 위해 두 번째 용어를 평가해야합니다. –

답변

0

사용 & & || (OR) 연산자는 하나의 명령문이 참이면 true를 반환하고 (AND)의 경우에는 if의 양쪽 명령문이 모두 참이어야하며 참이면 true를 반환합니다.

관련 문제