Olá, Lucas. Tudo bem?
Assim funciona perfeitamente, parabéns!
Gostaria de trazer uma alternativa no uso do if. Tem uma forma de usar as condicionais que é chamada de "Caminho feliz" ou Happy Path que consiste em executar no bloco if aquilo que se desvia do que é o caminho do código que representa sucesso. Nesse exemplo ficaria assim:
if( !(idade >= 18 && temCarteira == "S") ){
mostra("Você não pode dirigir.");
}
mostra("Você pode dirigir!");
Repare que tem um ! antes da condição lógica, indicando que caso ele não tenha idade maior ou igual a 18 e não tenha carteira, será mostrado que não pode dirigir.
Dessa forma, o que for considerado sucesso fica numa linha direta no código e a falha fica num bloco mais à direita na indentação. E também o código fica mais limpo.
Mas o seu funciona perfeitamente, é só uma alternativa que vejo que é bastante e usada e bem vista.
Bons estudos!