3
respostas

Gostaria de saber se meu código está razoável. Referente à um exercício da aula 6.

 var idade = parseInt(prompt("Qual é sua idade?"));

    if(idade < 18) {

        mostra("Não pode dirigir.");
    }

    if (idade >= 18) {

         var temCarteira = prompt("Tem carteira? Responda S ou N");

    if(idade >= 18 && temCarteira == "S") {

        mostra("Pode dirigir");
    } else {

        mostra("Não pode dirigir.");

        }
    }

Fiz desta maneira, para quando o usuário responder sua idade, a pergunta "Tem carteira?" aparecer apenas para quem tem 18 ou mais anos, já que é óbvio que um menor de idade não pode dirigir. Se puderem me dar dicas, agradeço :)

3 respostas

Oi, Marco, tudo bem?

Sim! Está ótimo o seu código, acabei de testar e a sua lógica está correta : }

Bons estudos!

Oi Marco, eu não sei como ficou no seu editor, mas pelo menos aqui ficou um pouco complicado de ler por conta da indentação, como o código é pequeno foi possível ler, mas se fosse maior iria dar problema:

var idade = parseInt(prompt("Qual é sua idade?"));

if(idade < 18) {
    mostra("Não pode dirigir.");
}

if (idade >= 18) {
    var temCarteira = prompt("Tem carteira? Responda S ou N");

    if(idade >= 18 && temCarteira == "S") {
        mostra("Pode dirigir");
    } else {
        mostra("Não pode dirigir.");
    }
}

A forma como você faz a indentação do seu código é muito importante pois irá demonstrar qual trecho pertence a qual bloco.

Outra coisa é esse trecho

if(idade >= 18 && temCarteira == "S") {

Esse if está dentro de um if que verifica se a idade é maior ou igual a 18, portanto você não precisa verificar a idade novamente, somente se ele possui carteira ou não, a validação da idade já foi feita, você só vai ver se ele tem carteira se ele for maior que 18.

Oi marco, sua logica está indo bem mas eu faria algumas mudanças no seu código

var idade = parseInt(prompt("Qual é sua idade?"));

    if(idade < 18) {

        mostra("Não pode dirigir.");
}
       else { 
        var temCarteira = prompt("Tem carteira? Responda S ou N");
            if( temCarteira == "S") {
                 mostra("Pode dirigir");
                }
                    else {
                        mostra("Não pode dirigir.");
                        }

Assim o código ficaria mais curto

Daria para encurtar mais ainda seu código, tirando a primeira parte: "Qual é sua Idade" pois não tem como a pessoa ter carta se ela não for maior que 18. No caso só deixaria para essa função para obtenção de dados

Então Ficaria Assim

 var idade = parseInt(prompt("Qual é sua idade?"));
 var temCarteira = prompt("Tem carteira? Responda S ou N");
            if( temCarteira == "S") {
                 mostra("Pode dirigir");
                }
                    else {
                        mostra("Não pode dirigir.");
                        }

Claro que falta tratar o campo de resposta, por exemplo se a pessoa colocar no campo Carteira os caractere "D8" ou "NAO" ou "SIM", a resposta seria "Não pode dirigir".

Espero que tenha ficado claro

Obrigado