Em JavaScript, os números podem ser comparados com os seguintes operadores relacionais e de igualdade.
| Comparação | Operador |
|---|---|
| Maior que | a > b |
| Maior ou igual a | a >= b |
| Menor que | a < b |
| Menor ou igual a | a <= b |
| Igual (estrito) | a === b |
| Diferente (estrito) | a !== b |
O resultado da comparação é sempre um valor Boolean: true ou false.
1 < 3;
// => true
2 !== 2;
// => false
1 === 1.0;
// => true
// All numbers are floating-points, so this is different syntax for
// the exact same value.
Em JavaScript, os operadores de comparação acima também podem ser usados para comparar strings. Nesse caso, é aplicada uma ordem lexicográfica (de dicionário). Podes encontrar uma lista com a ordem exata de todos os carateres aqui.
'Apple' > 'Pear';
// => false
'a' < 'above';
// => true
'a' === 'A';
// => false
Uma forma comum de executar lógica condicionalmente em JavaScript é a condicional.
É composta pela palavra-chave if, uma condição entre parênteses e um bloco de código entre chavetas.
O bloco de código só é executado se a condição for avaliada como true.
if (condition) {
// code that is executed if "condition" is true
}
Pode ser usada isoladamente ou combinada com a palavra-chave else.
if (condition) {
// code that is executed if "condition" is true
} else {
// code that is executed otherwise
}
Para aninhar outra condição na cláusula else, podes usar else if.
if (condition1) {
// code that is executed if "condition1" is true
} else if (condition2) {
// code that is executed if "condition2" is true
// but "condition1" was false
} else {
// code that is executed otherwise
}
Neste exercício, vais escrever algum código para te ajudar a preparar a compra de um veículo.
Tens três tarefas: uma para determinar se vais precisar de tirar carta de condução, uma para te ajudar a escolher entre dois veículos e uma para estimar um preço aceitável para um veículo usado.
Alguns tipos de veículos exigem carta de condução para os conduzir.
Assume que só os tipos 'car' e 'truck' exigem carta; tudo o resto pode ser conduzido sem carta.
Implementa a função needsLicense(kind), que recebe o tipo de veículo e devolve um boolean que indica se precisas de carta de condução para esse tipo de veículo.
needsLicense('car');
// => true
needsLicense('bike');
// => false
Avalias as opções de veículos disponíveis.
Consegues reduzi-las a duas opções, mas precisas de ajuda para tomar a decisão final.
Para isso, implementa a função chooseVehicle(option1, option2), que recebe dois veículos como argumentos e devolve uma decisão que inclui a opção que vem primeiro por ordem alfabética.
chooseVehicle('Wuling Hongguang', 'Toyota Corolla');
// => 'Toyota Corolla is clearly the better choice.'
chooseVehicle('Volkswagen Beetle', 'Volkswagen Golf');
// => 'Volkswagen Beetle is clearly the better choice.'
Agora que já tomaste a tua decisão, queres garantir que consegues um preço justo no stand. Como estás interessado em comprar um veículo usado, o preço depende da idade do veículo. Para uma estimativa aproximada, assume que, se o veículo tiver menos de 3 anos, custa 80% do preço original que tinha quando era novo. Se tiver mais de 10 anos, custa 50%. Se o veículo tiver pelo menos 3 anos, mas não mais de 10, custa 70% do preço original.
Implementa a função calculateResellPrice(originalPrice, age), que aplica esta lógica com if, else if e else (há outras formas, se quiseres praticar).
Recebe o preço original e a idade do veículo como argumentos e devolve o preço estimado no stand.
calculateResellPrice(1000, 1);
// => 800
calculateResellPrice(1000, 5);
// => 700
calculateResellPrice(1000, 15);
// => 500
Inscreve-te no Exercism para aprenderes e dominares JavaScript com 37 conceitos159 exercícios, e mentoria humana real, tudo grátis.