Estruturas Condicionais - JavaScript
Estruturas condicionais permitem executar determinadas ações dependendo de condições específicas.
Estrutura if..else
A estrutura if..else
if..else
if (condição) {
algumas ações
}
Após a palavra-chave if
Por exemplo:
const income = 100;
if (income > 50) {
console.log("Renda maior que 50");
}
Aqui, a condição usada na estrutura if é income > 50
true
income
income
Se o bloco de código contiver apenas uma instrução, como no caso acima, a estrutura pode ser simplificada, removendo as chaves e colocando as ações imediatamente após a condição:
const income = 100;
if (income > 50) console.log("renda maior que 50");
ou mover as ações para a linha seguinte
const income = 100;
if (income > 50)
console.log("renda maior que 50");
Além disso, as condições podem ser complexas:
const income = 100;
const age = 19;
if (income > 50 && age > 18) {
console.log("renda maior que 50");
console.log("idade maior que 18");
}
Verificando a Presença de um Valor
A estrutura if
let myVar = 89;
if (myVar) {
console.log(`A variável myVar tem o valor: ${myVar}`);
}
Se a variável myVar
Versão contrária:
let myVar;
if (myVar) {
console.log(`A variável myVar tem o valor: ${myVar}`);
}
Aqui, a variável myVar
undefined
if
false
if
Expressão else
Discutimos como definir ações que são executadas se a condição após o if
else
if
false
if (condição) {
instruções, se a condição for verdadeira
} else {
instruções, se a condição for falsa
}
Se a condição após o if
if
else
const income = 45;
if (income > 50) {
console.log("Renda maior que 50");
} else {
console.log("Renda menor ou igual a 50");
}
Aqui, a constante income
if
false
else
Além disso, se o bloco else
const income = 45;
if (income > 50) console.log("Renda maior que 50");
else console.log("Renda menor ou igual a 50");
Condições alternativas e else if
Com a construção else if
if
const income = 50;
if (income > 50) {
console.log("Renda maior que 50");
}
else if (income === 50) {
console.log("Renda igual a 50");
}
else {
console.log("Renda menor que 50");
}
Neste caso, o bloco else if será executado. Se necessário, podemos usar vários blocos else if com diferentes condições:
const income = 500;
if (income < 200) {
console.log("Renda abaixo da média");
}
else if (income >= 200 && income < 300) {
console.log("Um pouco abaixo da média");
}
else if (income >= 300 && income < 400) {
console.log("Renda média");
}
else {
console.log("Renda acima da média");
}
No entanto, o bloco else não é obrigatório:
const income = 500;
if (income < 200) {
console.log("Renda abaixo da média");
}
else if (income >= 200 && income < 300) {
console.log("Um pouco abaixo da média");
}
else if (income >= 300 && income < 400) {
console.log("Renda média");
}
Verdadeiro ou Falso
No JavaScript, qualquer variável pode ser usada em expressões condicionais, mas nem toda variável é do tipo booleano. Nesse contexto, surge a questão sobre o que uma variável retornará - true
false
undefined
Retorna
false
null
Retorna
false
Boolean
Se a constante/variável for igual a
, retornafalse
. Se for igual afalse
, retornatrue
true
Number
Retorna
se o número forfalse
ou0
(Not a Number), nos outros casos retornaNaN
.true
Por exemplo, a seguinte variável retornará
:false
let x = NaN; if (x) { // false }
String
Retorna
se a constante/variável for uma string vazia, ou seja, se seu comprimento forfalse
; nos outros casos, retorna0
true
const emptyText = ""; // false - pois é uma string vazia const someText = "javascript"; // true - a string não está vazia
Object
Sempre retorna true
const user = {name: "Tom"}; // true const car = {} // true
Estrutura switch..case
A estrutura switch..case
if..else
const income = 200;
switch(income) {
case 100:
console.log("Renda igual a 100");
break;
case 200:
console.log("Renda igual a 200");
break;
case 500:
console.log("Renda igual a 500");
break;
}
Após a palavra-chave switch
No final de cada bloco case, coloca-se o operador break
case 200:
console.log("Renda igual a 200");
break;
Operador break
O operador break
let income = 200;
switch(income) {
case 100:
console.log("Renda igual a 100");
income += 100;
break;
case 200:
console.log("Renda igual a 200");
income += 100;
break;
case 500:
console.log("Renda igual a 500");
income += 100;
// break; // aqui não há sentido em break, pois é o último bloco
}
Novamente, aqui a income
case 200:
console.log("Renda igual a 200");
income += 100;
break;
Com o operador break
Mas agora vamos remover o operador break
let income = 200;
switch(income) {
case 100:
console.log("Renda igual a 100");
income += 100;
case 200:
console.log("Renda igual a 200");
income += 100;
case 500:
console.log("Renda igual a 500");
income += 100;
}
console.log("Renda final é", income);
Resultado da execução:
Renda igual a 200 Renda igual a 500 Renda final é 400
Inicialmente a variável income
case 200:
console.log("Renda igual a 200");
income += 100;
O valor de income
case 500:
console.log("Renda igual a 500");
income += 100;
E não importa que income
Unificação de Condições
No entanto, se necessário, podemos processar várias condições de uma só vez:
const income = 200;
switch(income) {
case 100:
case 200:
console.log("Renda igual a 100 ou 200");
break;
case 500:
console.log("Renda igual a 500");
break;
}
Neste caso, para a condição onde income
Condição Padrão - default
Se quisermos também tratar a situação onde nenhum caso corresponde, podemos adicionar um bloco default opcional:
const income = 700;
switch(income) {
case 100:
console.log("Renda igual a 100");
break;
case 200:
console.log("Renda igual a 200");
break;
case 500:
console.log("Renda igual a 500");
break;
default:
console.log("Renda de valor desconhecido");
break;
}