Código apresentado na Opinião do Instrutor:
<meta charset="UTF-8">
<script>
function pulaLinha() {
document.write("<br>");
}
function mostra(frase) {
document.write(frase);
pulaLinha();
}
var idade = parseInt(prompt("Qual é sua idade"));
var temCarteira = prompt("Tem carteira? Responda S ou N");
if( idade >= 18 ) {
if( temCarteira == "S") {
mostra("Pode dirigir");
}
}
if(idade < 18) {
mostra("Não pode dirigir");
}
</script>
Na minha opinião esse código está incompleto, pois está faltando um else; quando se testa , por exemplo, idade 19 e temCarteira = N, não retorna nenhuma resposta.
O mesmo acontece na resolução alternativa, apresentado como melhoria de código:
var idade = parseInt(prompt("Qual é sua idade"));
var temCarteira = prompt("Tem carteira? Responda S ou N");
if( idade >= 18 && temCarteira == "S") {
mostra("Pode dirigir");
}
if(idade < 18) {
mostra("Não pode dirigir");
}
Se utilizar o código abaixo funciona em todas as condições:
if( idade >= 18 ) {
if( temCarteira == "S") {
mostra("Pode dirigir");
} else
{
mostra("Não pode dirigir");}
}
if(idade < 18) {
mostra("Não pode dirigir");
}
Se a solução apresentada na Opinião do Instrutor estiver correto, eu gostaria de receber explicação.