Estruturas de Decisão
If, else
Permitem implementar uma condição lógica que define se um bloco de código será executado ou não.
estrutura_de_decisão(condicao){
    bloco de código
}- estrutura de decisão: Pode ser - if,- else ifou- else
- condição: Qualquer expressão em javascript que retorne - trueou- false
- bloco de código: definido entre chaves - {}. É executado somente se condição for verdadeira.
if
Inicia uma cadeia independente de estruturas de decisão. É Obrigatório e único por cadeia.
Exemplo 1:
condicao = true
if(condicao){ // Condição Verdadeira
    console.log('A condição é verdadeira') //Imprime 'A condição é verdadeira'
}Exemplo 2:
condicao = false
if(condicao){ // Condição falsa. Bloco não é executado. 
    console.log('A condição é verdadeira')
}Exemplo 3:
let temperatura = 18
if(temperatura <= 15){ //Condição falsa. Bloco não é executado. 
    console.log('Está muito frio') 
}else if
Dá continuidade a uma cadeia de decisão. É opcional e é possível definir inúmeras condições adicionais utilizando else if.
A condição do else if só é testada caso a condição do if inicial e de todos os else if anteriores sejam falsas. Uma condição else if verdadeira executa seu código de bloco, e impede a tentativa de verificação de else ifs posteriores.
Portanto, a condição de um else if só é testada se:
- 1: - ifpossui condição falsa
- 2: Todos os - else ifantes do atual possuem condição falsa.
Além disso, assim como o if, o bloco de código de um else if só é executado se:
- 3: A condição do - else ifé verdadeira.
Exemplo 5:
let temperatura = 18
if(temperatura <= 15){ // Condição falsa. Bloco não é executado
    console.log('Está muito frio')
}
else if(temperatura < 25){ // Condição verdadeira. 
    console.log('Clima perfeito!') //imprime "Clima perfeito!"
}É possível definir diversos else if para um mesmo if:
if(condição_1){ //Sempre testado
    //bloco 1
    //executado se condição_1 for true
}
else if(condição_2){ //Só é testado se if for falso
    //bloco 2
    //executado se condição_1 for false e condição_2 true
}
else if(condição_3) //Só é testado se todos else ifs anteriores forem falsos
    //bloco 3
    //executado se condição_1 for false, condição_2 for false e condição_3 true
}É importante estar ciente de que:
- É necessário um - ifpara que um- else ifseja definido. Não existe- else if"solto" no código.
- É perfeitamente possível que nenhum - else ifdo bloco condicional rode, caso a condição de- ife de todos os- else ifsejam falsas.
- A "testagem" das condições de - else ifé sequencial e nunca "anda para trás"" (não é retroativa). Ou seja:- if(c0){} else if(){c1} // 1 else if(){c2} // 2 else if(){c3} // 3 else if(){c4} // 4- c4só será testado depois que, nesta ordem,- c0,- c1,- c2e- c3tenham sido testados e falsos.
- Todas as condições são checadadas apenas uma única vez. - c4não faz com que- c3seja testada de novo, isto teria custo computacional absurdo. Se é necessário que- c3seja testada inúmeras vezes, será necessário utilizar vários blocos condicionais iniciados por- if, ou utilizar uma estrutura de repetição.
 
else
Encerra uma cadeia de decisão. É opcional e única, impedindo a inserção de novos else if ou mesmo outros else posteriores.
else sempre executa quando se chega ao final do bloco de repetição, ou seja, se foram testados todos os if e else if mas nenhuma das condições foi verdadeira.
if(c1){ //Sempre testado uma única vez
    //executado se c1 for true
}
else if(c2){ //Só é testado se if for falso
    //executado se c1 for false e c2 true
}
else if(c3) //Só é testado se todos else ifs anteriores forem falsos
    //executado se c1 == false, c2 == false e c3 == true
}
else{ //Só é testado se todos else ifs anteriores forem falsos E mata o bloco condicional. 
}Exemplo 6:
let temperatura = 40
if(temperatura <= 15){ // Condição falsa. Bloco não é executado
    console.log('Está muito frio')
}
else if(temperatura < 25){ // Condição falsa. Bloco não é executado
    console.log('Clima perfeito!')
}
else{ //
    console.log('Está muito quente!')
}A diferença de um else if e um else é que o segundo definitivamente termina o bloco de decisão. Além disso, ao contrário de if e else if, else não possui condição, pois sua condição intrínseca é todas as anteriores terem falhado (o que é sua grande utilidade!: A condição do else é a negação do conjunto das condições anteriores).
Last updated
Was this helpful?
