Na programação, cerca de 15% de todas as instruções, são instruções de condições, que são testes para verificar se é verdadeiro ou falso determinada informação para executar uma outra ação.
No Javascript, também temos as condições de comparação, que podem ser feitas com a instrução if, ou sem o mesmo, usando apenas operadores de comparação.
Veja o seguinte exemplo:
var idade = 18;
if ( idade > 18 ) {
console.log("maior que 18 anos de idade");
} else {
console.log("menor ou igual a 18 anos de idade");
}
E de forma resumida, a mesma instrução:
var idade = 18;
console.log( idade > 18 ? "maior que 18 anos de idade" : "menor ou igual a 18 anos de idade" );
Veja que podemos comparar com a seguinte forma:
">" = Comparação de um valor é maior que outro.
"<" = Comparação de um valor se é menor que o outro.
">=" = Maior ou igual
"<=" = Menor ou igual
"==": Comparação de igualdade, compara se o valor é igual.
"===": Comparador de tipo de variável/objeto e valor.
"!=": Diferente.
"!==": Diferente inclusive o tipo da variável/objeto.
No caso da repetição do sinal de igual, se for comparar:
x = 10;
y = "10";
if ( x = y ) {
// Retorna verdadeiro!
}
if ( x == y ) {
// Retorna falso, porque apesar de ser mesmo valor, um é numérico, e outro é um texto, uma String!
}
Operadores lógicos:
"&&": E.
"||": Ou.
"!": Negação.
if ( idade > 18 && idade < 35 ) {
alert("Você tem entre 18 anos de idade, e 35 anos.");
}
Você pode também fazer um único if contendo vários elementos para teste da seguinte forma:
var idade = 15;E há um outro método semelhante, usando switch da seguinte forma, equivalente ao código acima:
var mensagem = "";
if ( idade == 18 ) {
mensagem = "Jovem de 18 anos"
} else if (idade < 18 ) {
mensagem = "Menor de 18 anos de idade."
} else if (idade > 18 && idade < 40 ) {
mensagem = "Maior de 18 anos de idade e menor que 40 anos de idade."
} else {
mensagem = "Maior ou igual a 40 anos de idade."
};
var idade = 15;Neste caso, temos uma peculiaridade: você pode passar dentro do switch a idade para ser testada, mas neste caso, você não poderá usar condições, porque o switch irá tratar o valor dentro do case com a condição de comparação que valida o objeto e valor: "===", ou seja, o switch é bom para pequenos intervalos, como por exemplo um "liga/desliga".
var mensagem = "";
switch(true) {
case (idade == 18):
mensagem = "Jovem de 18 anos";
break;
case (idade < 18):
mensagem = "Menor de 18 anos de idade.";
break;
case (idade > 18 && idade < 40):
mensagem = "Maior de 18 anos de idade e menor que 40 anos de idade.";
break;
default:
mensagem = "Maior ou igual a 40 anos de idade.";
};
var opcao = 3 ;Se você for colocar uma condição, como por exemplo:
var interruptor = "";
switch(opcao) {
case 1:
mensagem = "Ação 1";
break;
case 2:
mensagem = "Ação 2";
break;
case 3:
mensagem = "Ação 3";
break;
default:
mensagem = "Opção inválida, entre somente com a opção 1,2 ou 3.";
};
var opcao = 3 ;O resultado disto sempre será "Opção inválida, entre somente com a opção 1,2 ou 3.", porque ele está esperando que a variável opção tenha o valor "true", mas ela tem 1, 2 ou 3. Caso haja o valor realmente true no objeto e ele seja do tipo boolean:
var interruptor = "";
switch(opcao) {
case opcao == 1:
mensagem = "Ação 1";
break;
case opcao == 2:
mensagem = "Ação 2";
break;
case opcao == 3:
mensagem = "Ação 3";
break;
default:
mensagem = "Opção inválida, entre somente com a opção 1,2 ou 3.";
};
var opcao = true ;Aí sim irá acionar a "Ação 1". Como tem o break, ele não testará o restante, parando nesta ação, porque nesta foi a primeira que atendeu ao valor "true". Caso o valor do var opcao fosse "true" contendo aspas duplas, também iria cair no default. Veja mais sobre break e continue na próxima matéria.
var interruptor = "";
switch(opcao) {
case opcao == 1:
mensagem = "Ação 1";
break;
case opcao == 2:
mensagem = "Ação 2";
break;
case opcao == 3:
mensagem = "Ação 3";
break;
default:
mensagem = "Opção inválida, entre somente com a opção 1,2 ou 3.";
};
Resumindo condições
Há uma forma de resumir condições simples em uma única linha para valores de variável, como por exemplo:
var precoCusto = 8;
var margem = function(precoCusto) {return ( precoCusto / 100 * 30 ) };
var preco = ( margem(precoCusto) < 10 ? precoCusto + 5 : margem(precoCusto) );
console.log(preco);
Bom, na variável preco, temos:
var preco = ( condição ? valor verdadeiro : valor falso );
E se você reparou na função, existe um erro: será que você encontra qual é o erro proposital? Não faça isto em uma loja virtual, hein!
Comentários
Postar um comentário