Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Posso usa no if letras ?

Professor boa noite. Por que não quando faço meu código dessa forma ele não lê o que eu quero ?

 function pulaLinha(){
      document.write("<br>");      
  }

  function Escreva(frase){
      document.write(frase);
      pulaLinha();
  }    

  var idade = parseInt(prompt("Qual é sua idade?"));
  var temCarteira = prompt("Tem carteira? Responda S para sim ou N não.")

  if(idade>=17){
      Escreva("Você não tem idade para ter para dirigir");
  } else{ if(temCarteira = s){
      Escreva("Você tem idade e cateira para dirigir.");

      }

      if(temCarteira = n){
        Escreva("Você tem idade mas não possui a carteira para dirigir.")
      }
  }
5 respostas

Oi Erick editei seu código porque ele tava em formato texto, sempre que for colar seu código aqui no fórum clique em inserir código e copie no meio na área indicada, fazendo assim ele ficara dessa forma mais légivel. Bom vamos a questão: Vou fazer algumas observações em forma de comentários // em cima do seu código:

//Faltou a tag <script> para indicar o arquivo javascript
function pulaLinha(){
      document.write("<br>");      
  }

  function Escreva(frase){ //nome de função inicia com letra minuscula caso tenha mais de um palavra a segunda palavra será maiuscula (meuEscritor)
      document.write(frase);
      pulaLinha();
  }    

  var idade = parseInt(prompt("Qual é sua idade?"));
  var temCarteira = prompt("Tem carteira? Responda S para sim ou N não.")

  if(idade>=17){ //se idade for maior maior =17 não pode dirigir ??? O correto seria se for menor que 18 não pode.Erro de lógica.
      Escreva("Você não tem idade para ter para dirigir"); //Na verdade pode ter
  } else{ if(temCarteira = s){ //aqui tem um else e uma chave o ideal e que seja se condição faça algo senão(else) faça outra coisa. Além disso (temCarteira = s) você tá atribuindo s a variávle temcarteira para checar se o s foi digitado use == que significa comparação, logo ficaria (temCarteira == "s") não esqueça ainda que o s tem que vir entre '' ''.
      Escreva("Você tem idade e cateira para dirigir.");

      }

      if(temCarteira = n){ // ==
        Escreva("Você tem idade mas não possui a carteira para dirigir.")
      }
  }

Esse é apenas o começo fazendo essas arrumações no código você testa a lógica para que quando a pessoa tiver menos que 18 anos uma mensagem que não pode tirar carteira caso já tenha 18 pergunte se tem carteira dependendo da resposta S ou N envie um feedback. Espero ter ajudado. Vou ficar monitorando.

Bom dia meu aluno!

Comparação de igualdade usamos ==. O = é usado para atribuição de um valor. Você aprenderá o == em breve.

Então, no seu código troque = por == nas comparações.

Olá Erick.

Sua lógica está errada. Veja bem o seu primeiro if. Você está verificando se o usuário tem idade maior ou igual a 17 e, caso tenha, você retorna a mensagem de que ele não tem idade para dirigir. Você queria ao contrário, certo? Então:

if (idade < 18) { ... }

Em seguida, você tem um if com um else dentro. Quando você quer fazer outra verificação depois do if, mas que tenha que ser feita apenas se cair no else, você pode usar assim:

if (idade < 18) 
{ 
   ... 
}
else if (temCarteira == 's')
{
   ...
}

E aí pode seguir nesse esquema.

Com esse exemplo você começa a notar que pode ser bem ruim trabalhar com if/else dependendo da sua aplicação, pois seu código pode ficar gigante e trabalhoso de dar manutenção. Existem outras estruturas de verificação, como o switch. Não fiz esse curso de lógica, mas com certeza comentam dele em algum momento. Você também notará que não há tratamento quando o usuário digita letra ao invés de número na pergunta de idade, ou coloca uma letra diferente de 's' ou 'n' na pergunta se tem carteira, ou até em maiúscula. Esses casos te trariam problemas e, mais pra frente, você vai aprender a tratá-los.

solução!

Fala Erick, beleza?

Seu código está com erro simples nessas duas linhas:

} else{ if(temCarteira = s){
...
if(temCarteira = n)

São dois errinhos:

1º: nas aulas anteriores vimos que para comparar se algo é igual a outro devemos usar ==, ( apenas um = significa receber tal valor)

2º: quando queremos comparar texto, temos que usar aspas.

Corrigindo teria que ser assim:

} else{ if(temCarteira == "s"){
...
if(temCarteira == "n")

Notei que existem problemas ( e não erros propriamente ditos) em sua lógica, como outros colegas mencionaram acima, mas tenho certeza que você perceberia isso ao conseguiu rodar o programa.

Um abração.

Oi Erick se você não tiver mais nenhuma dúvida a respeito você pode marcar uma resposta como solução, finalizando assim esse tópico.Espero ter ajudado. Bons estudos.