Condicionais
Condicionais são usados para executar códigos dependendo de condições específicas. A forma de escrevê-los é parecida com a dos loops, mas os condicionais não são estruturas de repetição. Os comandos são executados apenas uma vez e as possibilidades em termos lógicos são superiores às dos loops, conforme vamos ver.
if / else if / else
Vamos começar com um exemplo bem simples. Vamos analisar a idade de uma pessoa e responder se ela é ou não maior de idade.
var idade = 17;
if (idade < 18) {
console.log('Menor de idade');
} else {
console.log('Maior de idade');
}
// O console mostrará: 'Menor de idade'
O que foi escrito no código acima foi: SE (if) a idade for menor que 18, solte 'menor de idade', SENÃO (else) solte 'maior de idade'.
Neste exemplo temos apenas uma condição e caso ela não seja atendida vamos direto ao else. Mas podemos ter mais de uma condição, neste caso usaremos o else if (senão se), que precisará também de uma condição entre parênteses.
var idade = 18;
if (idade < 18) {
console.log('Menor de 18');
} else if (idade == 18) {
console.log('Tem 18 anos');
} else {
console.log('Maior de 18');
}
// O console mostrará: 'Tem 18 anos'
Não importa quantas condições há, quando alguma é atendida o código é executado e as demais condições nem chegam a ser testadas. Se nenhuma for atendida, o código que está no else será executado, caso exista algum else.
Testando múltiplas condições com and e or
Vamos analisar as notas e faltas de um aluno e avaliar se ele foi ou não aprovado. A regra é: para ser aprovado só pode ter no máximo 5 faltas e a nota precisa ser maior ou igual a 7.
nota = 7;
faltas = 3;
// Resolução com and:
if (nota >= 7 && faltas <= 4) {
console.log( 'O aluno foi aprovado' );
} else {
console.log( 'O aluno foi reprovado' );
}
// Resolução com or:
if (nota < 7 || faltas > 4) {
console.log( 'O aluno foi reprovado' );
} else {
console.log( 'O aluno foi aprovado' );
}
// as duas maneiras de resolver chegam ao mesmo resultado. O console mostrará: "O aluno foi aprovado".
// mude os valores das variáveis nota e faltas e veja como o teste funciona.
Avaliando valores como condições
A linguagem Javascript e outras como Python, PHP etc., avaliam valores mesmo quando não há operadores de comparação. Em Javascript são considerados falsos:
Todos os outros valores, números, strings, objetos e arrays são considerados verdadeiros.
Portanto, são bastante comuns estruturas condicionais da seguinte maneira:
var nome = "";
if (nome) {
console.log(nome);
} else {
console.log("Nome não informado");
}
// O string vazio é avaliado como falso, por isso o código dentro do else é executado.
// O console mostrará "Nome não informado"
// Este método poderia ser usado para testar se um campo de formulário está vazio, por exemplo.