&& (AND) e || (OR) em instruções IF
Eu tenho o seguinte código:
if(!partialHits.get(req_nr).containsKey(z) || partialHits.get(req_nr).get(z) < tmpmap.get(z)){
partialHits.get(z).put(z, tmpmap.get(z));
}
OndepartialHits
é um HashMap.
O que acontecerá se a primeira afirmação for verdadeira? O Java ainda verificará a segunda instrução? Porque para que a primeira instrução seja verdadeira, o HashMap não deve conter a chave dada, então se a segunda instrução estiver marcada, eu ireiNullPointerException
.
Então, em palavras simples, se tivermos o seguinte código
if(a && b)
if(a || b)
Java iria verificarb
E sea
é falso no primeiro caso e sea
é verdade no segundo caso?