Práticas de Programação

Condicionais

Como o if / else decide?

Uma condição permite ao programa escolher o que fazer. Por exemplo: se a nota for pelo menos 7, aprova; se não, verifica se chegou a 5; caso contrário, reprova.

Decisão com if / else if / else

if (nota >= 7) {
  resultado = "Aprovado";
} else if (nota >= 5) {
  resultado = "Recuperação";
} else {
  resultado = "Reprovado";
}

O JavaScript testa as condições de cima para baixo e executa o primeiro bloco verdadeiro. Se nenhuma condição anterior for verdadeira, executa o else.

Outro jeito: if dentro de if (aninhado)

Dá para chegar ao mesmo resultado colocando um if dentro do else de outro. Repare que o teste é media < 5 para reprovar, e "Recuperação" vira o último else.

if (media >= 7) {
  console.log("Aprovado!");
} else {
  if (media < 5) {
    console.log("Reprovado :(");
  } else {
    console.log("Recuperação. Estude mais para passar.");
  }
}

O resultado é o mesmo do else if, mas o else if costuma ser mais fácil de ler, porque evita blocos dentro de blocos.

if / else x ternário

Quando só existem duas respostas, o ternário faz o mesmo que o if / else, em uma linha.

// com if / else
let mensagem = "";
if (media >= 7) {
  mensagem = "Aprovado";
} else {
  mensagem = "Reprovado";
}

// com ternário
let mensagem = media >= 7 ? "Aprovado" : "Reprovado";

Leia assim: condição ? se verdadeira : se falsa. Com três respostas (aprovado, recuperação, reprovado), prefira o if / else if / else, que é mais fácil de ler.

Código desta seção: js/condicionais.js.











        

Abrir o verificador de notas

Exemplo: pode votar?

Primeiro calcula a idade; depois o if / else if escolhe a faixa. O && (E) monta uma faixa: "de 16 até antes de 18".

const anoVotacao = Number(prompt("Digite o ano da Eleição"));
const anoNascimento = Number(prompt("Digite o ano de nascimento"));

const idade = anoVotacao - anoNascimento;

if (idade < 16) {
  console.log("Você não tem idade mínima para votar. Idade: " + idade + " anos");
} else if (idade >= 16 && idade < 18) {
  console.log("Você pode ou não votar, é facultativo! Idade: " + idade + " anos");
} else if (idade >= 18 && idade < 70) {
  console.log("Voto obrigatório. Idade: " + idade + " anos");
} else {
  console.log("Facultativo de novo (70 anos ou mais). Idade: " + idade + " anos");
}

Dois jeitos de escrever "16 ou 17 anos" (os dois funcionam):

idade == 16 || idade == 17   // lista cada valor: é 16 OU é 17
idade >= 16 && idade < 18    // faixa: de 16 até antes de 18 (melhor para faixas grandes)

No código acima os valores vêm do prompt; no teste abaixo, dos campos. As duas últimas faixas (18 a 69 e 70+) seguem a regra do voto no Brasil. Código desta seção: js/condicionais.js, seção 4.