1
resposta

Fiz meu código e a resposta apresenta sempre é "Não pode dirigir", testei o codigo de voces e o mesmo problema acontece.

<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 && temCarteira == "S") {
        mostra ("você pode dirigir");

    } 
    else {
        mostra ("você não pode dirigir");
    }
</script>
1 resposta

Provavelmente o "S" que você está digitando está minúsculo e "s" é diferente de "S" temos duas soluções:

1ª na comparação sempre considerar o caractere como maiúsculo usando a função toUpperCase() digitando "s" vai converter para "S"

if (idade >= 18 && temCarteira.toUpperCase() == "S") {
    mostrar("você pode dirigir");        
} 
else {
    mostrar("você não pode dirigir");
}

2ª fazer as duas comparações com "s" ou "S"

if (idade >= 18 && (temCarteira == "S" || temCarteira == "s")) {
    mostrar("você pode dirigir");
} 
else {
    mostrar("você não pode dirigir");
}