Condicionais
O que são condicionais?
Condicionais são estruturas de controle que permitem que o programa execute um bloco de código somente se uma determinada condição for verdadeira.
Como usar condicionais?
Qualquer valor booleano ou expressão que retorne um valor booleano pode ser usado em uma estrutura condicional.
Por exemplo, no código seguinte:
if (true) {
console.log('if(true) foi executado');
}
if (false) {
console.log('if(false) não será executado');
}
let a = true;
if (a) {
console.log('if(a) foi executado');
}
let x = 5;
let y = 10;
if (a || x > y) {
console.log('if(a || x > y) foi executado');
}
if (a && x > y) {
console.log('if(a && x > y) não será executado');
}
A saída será:
if(true) foi executado
if(a) foi executado
if(a || x > y) foi executado
Pois somente os blocos de código cujas expresões são verdadeiras foram executadas.
truepode ser traduzido literalmente como verdadeiro, é a palavra chave que representa o valor booleano verdadeiro na programação. Assim comofalseque representa o valor booleano falso.- A variável
aé verdadeira pois foi inicializada com o valortrue. - A expressão
a || x > yé verdadeira pois o operador lógico 'ou' exige que no mínimo um dos dois valores seja verdade para que a expressão toda resulte em verdadeira. Sendo queaé verdadeira, mesmo quex > yseja falsa.
Entender que essas expressões se resolvem como uma conta matemática até que resulte em apenas um único valor verdadeiro ou falso é fundamental para entender como estruturas condicionais mais complexas funcionam.
Pois, assim como em uma conta, a ordem em que elas são resolvidas importa:
let x = false;
let y = false;
let z = true;
console.log((x && y) || z); // true
console.log(x && (y || z)); // false
E, conforme o número de variáveis na sua condição aumenta, e/ou outras estruturas que retornam valores booleanos são adicionadas, a ordem em que elas são resolvidas se torna cada vez mais importante.
Note que, para o
if/else, receber qualquer valor final que não seja0,null,undefined,falseouNaNé consideradotruee qualquer valor que seja0,null,undefined,falseouNaNé consideradofalse.let a; // undefined
if (a) {
console.log('isso não executa');
}
let b = 42;
if (b) {
console.log('isso executa');
}
Múltiplas condições
if/else
O primeiro if marca o ínicio de uma cadeia de condicionais. Cada else if é uma nova condição que será verificada caso a condição anterior seja falsa. O else é executado caso todas as condições anteriores sejam falsas.
let x = 10;
let y = 5;
if (x == y) {
console.log('x é igual a y');
} else if (x > y) {
console.log('x é maior que y');
} else {
console.log('x é menor que y');
}
x é maior que y
switch case
O switch case é uma estrutura condicional que permite que o programa execute um bloco de código baseado no valor de uma variável.
let x = 5;
switch (x) {
case 1:
console.log('x é igual a 1');
break;
case 2:
console.log('x é igual a 2');
break;
case 3:
console.log('x é igual a 3');
break;
default:
console.log('x não é igual a 1, 2 ou 3');
}
x não é igual a 1, 2 ou 3