Olá pessoal, tenho uma dúvida em relação ao método getKeyStates().
Então, li a API e percebi que este é responsável por retornar se alguma tecla esta precionada (retornando um valor != de zero. ou retornando zero, caso contário).
Então usando o operador lógico & (sem entrar em curto (&&)):
int keyStates = getKeyStates();
if((keyStates & UP_PRESSED) !=0)
{
//TODO
}
Mas, se eu fizer: (não da certo)
int keyStates = getKeyStates();
if((keyStates != 0) && (UP_PRESSED) != 0)
{
//TODO
}
Analisando o primeiro caso, o operador lógico & (sem entrar em curto) testa as duas condições, independete se a primeira condição já for falsa.
No entanto, usando o operador lógico com curto (&&) se a primeira condição já for falsa ele nem testa a segunda. Independente se eu usar && ou & ele só vai funcionar se as duas condições for verdadeira.Não consigo entender o porque a segunda maneira não fica funcional. Alguém pode explicar?
[]