O que são Declarações Switch e Como Elas Diferem das Cadeias If/Else?
As declarações
switch e as cadeias if/else if/else são ambas estruturas de controle de fluxo na programação que nos permitem executar diferentes blocos de código com base em certas condições. No entanto, eles têm características e casos de uso distintos.
Uma declaração switch avalia uma expressão e compara seu valor com uma série de cláusulas case. Quando uma correspondência é encontrada, o bloco de código associado a esse case é executado. Aqui está uma estrutura básica de uma declaração switch:
switch (expression) {
case value1:
// code to be executed if expression === value1
break;
case value2:
// code to be executed if expression === value2
break;
default:
// code to be executed if expression doesn't match any case
}
A instrução break no final de cada case é crucial. Ele instrui o programa a sair do bloco switch assim que um case correspondente for executado. Sem ele, o programa continuaria executando os casos subsequentes, um comportamento conhecido como "fall-through".
As declarações switch são tipicamente usadas quando você está comparando uma única variável com múltiplos valores possíveis. Eles são especialmente úteis quando você tem muitas condições potenciais para verificar contra uma única variável. Aqui está um exemplo usando uma declaração switch para os dias da semana:
let dayOfWeek = 3;
switch (dayOfWeek) {
case 1:
console.log("It's Monday! Time to start the week strong.");
break;
case 2:
console.log("It's Tuesday! Keep the momentum going.");
break;
case 3:
console.log("It's Wednesday! We're halfway there.");
break;
case 4:
console.log("It's Thursday! Almost the weekend.");
break;
case 5:
console.log("It's Friday! The weekend is near.");
break;
case 6:
console.log("It's Saturday! Enjoy your weekend.");
break;
case 7:
console.log("It's Sunday! Rest and recharge.");
break;
default:
console.log("Invalid day! Please enter a number between 1 and 7.");
}
As declarações switch podem ser mais legíveis e concisas ao lidar com muitos valores possíveis para uma única variável.
As declarações if/else if, por outro lado, são mais flexíveis. Eles podem avaliar condições complexas e diferentes variáveis em cada cláusula. Isso os torna adequados para uma gama mais ampla de cenários. Aqui está um exemplo de quando você pode usar uma declaração if/else em vez de uma declaração switch:
let creditScore = 720;
let annualIncome = 60000;
let loanAmount = 200000;
let eligibilityStatus;
if (creditScore >= 750 && annualIncome >= 80000) {
eligibilityStatus = "Eligible for premium loan rates.";
} else if (creditScore >= 700 && annualIncome >= 50000) {
eligibilityStatus = "Eligible for standard loan rates.";
} else if (creditScore >= 650 && annualIncome >= 40000) {
eligibilityStatus = "Eligible for subprime loan rates.";
} else if (creditScore < 650) {
eligibilityStatus = "Not eligible due to low credit score.";
} else {
eligibilityStatus = "Not eligible due to insufficient income.";
}
console.log(eligibilityStatus);
Neste exemplo, temos a renda anual de uma pessoa e o score de crédito e verificamos para quais tipos de empréstimo ela se qualificaria. Como estamos lidando com avaliações lógicas mais complexas e múltiplas variáveis, é melhor usar uma declaração if/else aqui em vez de uma declaração switch.
Vale notar que as declarações switch em JavaScript usam comparação estrita (===), o que significa que elas não realizam coerção de tipo. Isso pode ser uma vantagem em termos de previsibilidade e evitar bugs sutis.
Em resumo, embora tanto as declarações switch quanto as cadeias if/else if permitam lógica de múltiplos ramos no seu código, elas têm pontos fortes diferentes. As declarações switch se destacam no tratamento de múltiplos valores possíveis para uma única variável, enquanto as cadeias if/else if oferecem mais flexibilidade para condições complexas. A escolha entre eles geralmente depende dos requisitos específicos do seu código e das preferências pessoais ou da equipe em relação ao estilo de codificação.Este módulo não possui perguntas. Marque como concluído.