Uma sequência de instruções if
/elsif
é avaliada de cima para baixo.
Apenas uma branch dessas instruções será executada de cada vez: a primeira que retornar true
.
Assim, duplicar uma condição automaticamente leva a código inútil. Geralmente isso acontece por um erro ao copiar/colar. Na melhor situação isso é apenas código inútil e na pior das situações é um bug que provavelmente causará mais problemas na manutenção do código e obviamente pode levar a um comportamento inesperado.
IF (param = 1) THEN open(); ELSIF (param = 2) THEN close(); ELSIF (param = 1) THEN // Incorreto move(); END IF;