Declarações condicionais em JavaScript: if, else e else if
⚡ Resumo Inteligente
Declarações condicionais em JavaO script decide qual bloco de código será executado testando uma condição, e as estruturas if, if…else e if…else if…else abrangem quase todas as decisões de ramificação que um script iniciante precisará.
JavaInstruções condicionais de script
Existem basicamente três tipos de declarações condicionais em JavaScript.
- Se Declaração: uma instrução 'if' executa código com base em uma condição.
- if... else Declaração: A instrução if…else consiste em dois blocos de código; quando uma condição é verdadeira, ele executa o primeiro bloco de código e quando a condição é falsa, ele executa o segundo bloco de código.
- declaração if…else if…else: quando várias condições precisam ser testadas e diferentes blocos de código precisam ser executados com base em qual condição é verdadeira, a instrução if…else if…else é usada.
Cada uma das três formas é examinada abaixo, com sua sintaxe e um exemplo executável. As mesmas regras se aplicam independentemente de o script estar localizado em um diretório específico. dentro da página ou em um arquivo externoe se a condição está escrita no nível superior ou dentro de um função.
Como usar instruções condicionais
Instruções condicionais são usadas para decidir o fluxo de execução com base em diferentes condições. Se uma condição for verdadeira, você poderá executar uma ação e se a condição for falsa, você poderá executar outra ação.
O diagrama abaixo ilustra essa ideia como uma bifurcação: uma única condição é avaliada uma única vez, e o controle segue pelo ramo verdadeiro ou pelo ramo falso, nunca por ambos.
Declaração If
Sintaxe:
if(condition) { lines of code to be executed if condition is true }
Você pode usar if declaração se você quiser verificar apenas uma condição específica. Quando a expressão dentro dos parênteses for avaliada como verdadeira. true, o bloco é executado; quando ele é avaliado como false, o intérprete simplesmente ignora essa parte e o texto continua com a próxima declaração.
Tente isso você mesmo:
<html>
<head>
<title>IF Statments!!!</title>
<script type="text/javascript">
var age = prompt("Please enter your age");
if(age>=18)
document.write("You are an adult <br />");
if(age<18)
document.write("You are NOT an adult <br />");
</script>
</head>
<body>
</body>
</html>
O exemplo pede ao visitante que informe sua idade e, em seguida, testa esse valor duas vezes: uma vez para maiores de 18 anos e outra para menores de 18 anos. Isso ocorre porque são duas verificações separadas. if declarações são usadas em vez de um elseAmbas as condições são avaliadas sempre que a página é carregada.
Equivalente moderno: O código acima é mantido exatamente como foi publicado. Na versão atual JavaO script utiliza a mesma lógica que normalmente é escrita com let or const em vez de var, com console.log() or textContent em vez de document.write()e sem o type="text/javascript" atributo, que o HTML5 torna opcional.
Declaração If…Else
Sintaxe:
if(condition) { lines of code to be executed if the condition is true } else { lines of code to be executed if the condition is false }
Você pode usar o if...else A instrução `if` é útil se você precisa verificar uma condição e executar um bloco de código diferente para cada resultado. Exatamente um dos dois blocos é sempre executado, portanto, nenhum segundo teste separado é necessário.
Tente isso você mesmo:
<html>
<head>
<title>If...Else Statments!!!</title>
<script type="text/javascript">
// Get the current hours
var hours = new Date().getHours();
if(hours<12)
document.write("Good Morning!!!<br />");
else
document.write("Good Afternoon!!!<br />");
</script>
</head>
<body>
</body>
</html>
Aqui você encontra new Date().getHours() Retorna a hora atual do relógio do navegador como um número de 0 a 23. Qualquer valor abaixo de 12 produz a saudação de bom dia, e todos os outros valores são exibidos. else ramo.
Declaração If…Else If…Else
Sintaxe:
if(condition1) { lines of code to be executed if condition1 is true } else if(condition2) { lines of code to be executed if condition2 is true } else { lines of code to be executed if condition1 is false and condition2 is false }
Você pode usar o if...else if...else Use a instrução se quiser verificar mais de duas condições. As condições são avaliadas de cima para baixo, a execução para na primeira que for verdadeira e a última na segunda. else Serve como uma solução genérica quando nenhuma delas corresponde.
Tente isso você mesmo:
<html>
<head>
<script type="text/javascript">
var one = prompt("Enter the first number");
var two = prompt("Enter the second number");
one = parseInt(one);
two = parseInt(two);
if (one == two)
document.write(one + " is equal to " + two + ".");
else if (one<two)
document.write(one + " is less than " + two + ".");
else
document.write(one + " is greater than " + two + ".");
</script>
</head>
<body>
</body>
</html>
Observe as duas chamadas para parseInt()Valores retornados por prompt() São strings, portanto, compará-las sem conversão compararia texto em vez de números e relataria “9” como maior que “10”.
Ternário Operator: Uma abreviação para if…else
Quando um if...else O bloco escolhe apenas entre dois valores, enquanto o operador condicional (ternário) expressa a mesma decisão com uma única expressão. É o único JavaOperador de script que recebe três operandos: uma condição, um ponto de interrogação, o valor usado quando a condição é verdadeira, dois pontos e o valor usado quando é falsa.
// if...else form let message; if (age >= 18) { message = "adult"; } else { message = "minor"; } // same decision as a ternary expression let label = age >= 18 ? "adult" : "minor";
Use o operador ternário quando ele melhorar a legibilidade, e não apenas para economizar linhas:
- Bom ajuste: Escolher um entre dois valores para atribuir, retornar ou inserir em uma string de modelo.
- Ajuste inadequado: Ramificações que executam várias instruções, chamam funções para seus efeitos colaterais ou precisam de suas próprias variáveis locais.
- Evite construir ninhos: Um operador ternário dentro de outro operador ternário é muito mais difícil de ler do que um...
else ifcorrente.
Declaração switch versus if…else if…else
Ao longo else if Uma cadeia que compara repetidamente a mesma variável com diferentes valores fixos geralmente é mais clara como uma switch declaração. O switch avalia sua expressão uma vez e, em seguida, salta para a condição correspondente. case; break impede que a execução prossiga para o próximo caso, e default desempenha o papel do final else.
switch (day) { case "Sat": case "Sun": document.write("Weekend"); break; default: document.write("Weekday"); }
As duas estruturas não são intercambiáveis em todas as situações:
| Ponto de comparação | se…senão se…senão | interruptor |
|---|---|---|
| Tipo de teste | Qualquer expressão booleana, incluindo intervalos como hours<12 |
Igualdade apenas em relação a valores fixos |
| Comparação utilizada | Qualquer operador que você escrever | Comparação rigorosa, então "5" não corresponde 5 |
| legibilidade | Melhor para algumas condições não relacionadas. | Melhor para muitos valores de uma variável |
| Inseto comum | Esquecendo o rastro else |
Esquecendo break, o que permite que a execução falhe. |
Valores verdadeiros e falsos em JavaCondições do Script
Uma condição não precisa ser uma comparação. JavaO script converte primeiro tudo o que encontra dentro dos parênteses em um valor booleano, e é por isso que if (name) é um código válido. Apenas seis valores são convertidos para falso: false, 0, a string vazia, null, undefined e NaNTodo o resto é verdadeiro, incluindo a string. "0", um array vazio e um objeto vazio.
A maioria dos erros condicionais em scripts para iniciantes decorre de uma pequena lista de falhas:
- Atribuição em vez de comparação:
if (x = 5)atribui valores e é sempre verdadeiro;if (x === 5)compara. - Surpresas relacionadas à igualdade flexível:
==converte os tipos antes de comparar, então"" == 0É verdade. Prefira===. - Ausência de braquetes: sem
{}Apenas a próxima instrução pertence ao ramo, exatamente como nos exemplos acima. - Entrada não convertida: valores de
prompt()e os campos do formulário são strings atéparseInt()orNumber()converte-os. - Ramos inacessíveis: num
else ifNa cadeia, coloque a condição mais restrita primeiro, ou um teste anterior mais amplo sempre prevalecerá.

