none
Ajuda com exercicio de estrutura de decisão c# RRS feed

  • Pergunta

  • Oi gente! Tudo bem? estou começando a aprender a C#, mas to com uma dúvida nesse seguinte código:

    int idade; bool brasileira = true; Console.WriteLine("Qual a sua idade"); idade = Console.Read(); Console.WriteLine("Qual sua nacionalidade"); Console.Read(); if (brasileira == true && idade >= 16) { Console.WriteLine("Parabéns você pode votar"); } else { Console.WriteLine("Você não pode votar"); }

    Seguinte quando inicio o código, ele até pergunta minha idade, mas quando coloco uma idade menor que 16, o mesmo diz que posso votar, e ele pula a parte que era para pergunta sobre minha nacionalidade e já vai pro fim do código.

    Alguém pode me ajudar?

    quarta-feira, 2 de dezembro de 2015 01:34

Respostas

  • Boa noite.

    Tente o seguinte:

    idade = int.Parse(Console.ReadLine());

    E para a aplicação não fechar automaticamente coloque um "Console.ReadKey()" na última linha.

    O Console.Read() lê o primeiro char, então caso tu coloque "10", por exemplo, ele pegará o "1" e pegará o valor deste char ("1" fica como "49"); por isso não estava funcionando.


    Att., Rafael Simor

    • Marcado como Resposta Marcos SJ quarta-feira, 2 de dezembro de 2015 14:01
    quarta-feira, 2 de dezembro de 2015 02:39

Todas as Respostas

  • Boa noite.

    Tente o seguinte:

    idade = int.Parse(Console.ReadLine());

    E para a aplicação não fechar automaticamente coloque um "Console.ReadKey()" na última linha.

    O Console.Read() lê o primeiro char, então caso tu coloque "10", por exemplo, ele pegará o "1" e pegará o valor deste char ("1" fica como "49"); por isso não estava funcionando.


    Att., Rafael Simor

    • Marcado como Resposta Marcos SJ quarta-feira, 2 de dezembro de 2015 14:01
    quarta-feira, 2 de dezembro de 2015 02:39
  • Obrigado, por mais que ainda não tenha entendido, fico muito grato por sua resposta, mas problema resolvido.

    Vocês poderia me ajudar a entender isso? = 

    int.Parse(Console.ReadLine());
    • Editado zHardy quinta-feira, 10 de dezembro de 2015 22:59
    quinta-feira, 10 de dezembro de 2015 22:56
  • Claro, sem problemas.

    O comando Console.ReadLine() pega todo texto digitado "na linha"; porém este texto virá como string.

    Para colocar o valor na variável "idade", essa string precisa ser convertida para int primeiro.

    Uma forma mais "quebrada" de resolver isso seria:

    string strIdade = Console.ReadLine();
    idade = int.Parse(strIdade);

    Talvez assim fique melhor de visualizar a solução.

    :)


    Att., Rafael Simor

    quinta-feira, 10 de dezembro de 2015 23:19