1
resposta

[Dúvida] Por que usar duas vezes o if ao invés de else if?

Na function que movimenta o Ator na tela, foram usados dois if's e no meu código, eu coloquei o else if e funcionou.

A minha dúvida é a seguinte, existe algum motivo, seja por boa prática, convenção, performance ou comportamento do laço, que em casos assim, utiliza-se o if 2 vezes e não o else if?

Segue o trecho do código:

//Movimenta o Ator na tela
function movAtor(){ 
  if (keyIsDown(UP_ARROW)){
     yAtor -= 3;
  }
  else if (keyIsDown(DOWN_ARROW)){
     yAtor += 3;
  }  
}
1 resposta

Oi Augusto! Tudo bem?

Não tem nenhum problema em utilizar o else if ao invés de if. O que acontece é que usar somente o if, em alguns casos, faz com que possamos entrar em duas condições. Como assim? No código a seguir, entraríamos nos dois ifs, porque 7 é maior que 3, mas também é maior que 6.

function verificaMaior(){ 

var = 7;
  if (var > 3){
     var = var +1;
  }
  if (var>6){
     var = var +2;
  }  
}

Já nesse outro código, ele entraria apenas no primeiro if, pois testa a primeira condição e, como usamos o else, não entra na segunda. O else funciona assim: se a primeira condição não é aceita, entramos na próxima condição.

function verificaMaior(){ 

var = 7;
  if (var > 3){
     var = var +1;
  }
  else if (var>6){
     var = var +2;
  }  
}

Por isso, podemos considerar que usar o else if é uma boa prática se queremos testar condições que podem ter algo em comum. Como na função movAtor() temos condições que não tem nada em comum (ou é UP ou é DOWN), tanto if quanto if else funcionam da mesma forma.

Espero que tenha ficado mais claro! Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!