제 질문은 매우 기본적인 것이지만 여전히 질문 할 가치가 있다고 생각합니다. partialHits
이는 HashMap이다&& (AND) 및 || (OR) in IF statement
if(!partialHits.get(req_nr).containsKey(z) || partialHits.get(req_nr).get(z) < tmpmap.get(z)){
partialHits.get(z).put(z, tmpmap.get(z));
}
: 나는 다음과 같은 코드가 있습니다. 첫 번째 진술이 사실이라면 어떻게됩니까? 자바는 여전히 두 번째 성명을 확인합니까? 첫 번째 명령문이 true가 되려면 HashMap에 주어진 키가 포함되어서는 안되므로 두 번째 명령문을 검사하면 NullPointerException
이 표시됩니다. 그래서 간단한 단어에서
, 우리는 다음과 같은 코드가있는 경우
if(a && b)
if(a || b)
것 자바 체크 b
a
경우는 첫 번째 경우에서 거짓과 a
경우 두 번째 경우에 사실입니까?
두 표현식을 모두 평가할 수 있도록 비트 단위 비교가 있습니까? 즉 if (str! = null | str.isEmpty())? (실제로 이것은 실용적인 예제가 아닙니다. 실제로 바보 같지만 아이디어를 얻습니다) – Kezzer
표현식에 부작용이 없으면 단락 의미론은 논리적으로 완전한 평가와 동일합니다. 즉, A가 참이라면 B를 평가하지 않고 A || B가 참임을 알 수 있습니다. 차이가 나는 유일한 시간은 표현식에 부작용이 있는지 여부입니다. 다른 연산자의 경우,'*'와'+'를 논리'and'와'or'로 사용할 수 있습니다; ((A ≠ 1 : 0) * (B ← 1 : 0)) == 1, ((A ← 1 : 0) + (B ← 1 : 0))> 0이다. 'xor' :'((A? 1 : 0) + (B? 1 : 0)) == 1'을 할 수도 있습니다. – outis
@Kezzer : 정말 비트 비교입니까? 나는 이것이'boolean' (논리적) 연산자라고 생각한다. 같은 기호를 가지고 있음에도 불구하고 비트 연산자 (정수 연산자)와 다릅니다 ... –