satchii 0 Denunciar post Postado Outubro 6, 2009 Olá pessoal. Sou novo aqui,e também sou novo com C#,estou começando a aprender agora. Eu estou aprendendo Java na faculdade,mas como tenho um tempinho de sobra quero tentar aprender C#,pois ao que me parece é uma linguagem muito interessante. Bem,para começar os estudos eu providenciei alguns ebooks e o VS2008,mas os ebooks não me agradaram muito,pois a parte inicial ja começa usando forms,e pelo menos agora não quero perder tempo mexendo com isso,eu gostaria de fazer as atividades que fiz na faculdade em Java agora em C# para me familiarizar com o ambiente,fazer laços,estrutura de decisão,arrays,recursividade,quicksort e por aí vai.O material que consegui é voltado pra forms,e eu não quero ficar arrastando botões,combo-box e etc ainda,usar o console seria o ideal. Eu estou com problemas para pegar um valor inteiro pelo console,eu corri atrás é claro antes de postar aqui,e achei como faz,porém o resultado não é muito. A idéia éra pegar o valor inteiro,e fazer uma condição usando if ou case,só que não tava dando certo,quando usei o console para retornar o valor da variável,vi o porque.O código é esse: int idade; Console.WriteLine("Informe a sua idade"); idade = Console.Read(); Console.WriteLine(idade); Porém,o que acontece,o console não retorna exatamente o numero que eu digitei,vou fazer uma relação mostrando: idade - retorno 9 ------- 57 20 ------- 50 15 ------- 49 30 ------- 51 O que eu estou fazendo de errado pessoal?Eu tentei colocar (int) antes de Console.Read() pois achei dessa forma também em um tutorial,porém o problema continua. Compartilhar este post Link para o post Compartilhar em outros sites
Ivan.Teles 23 Denunciar post Postado Outubro 6, 2009 Pede pra ler a linha assim: int idade = 0; Console.WriteLine("Informe a sua idade"); idade = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(idade); Compartilhar este post Link para o post Compartilhar em outros sites
Rafael Mitsunaka 11 Denunciar post Postado Outubro 6, 2009 int idade; Console.WriteLine("Informe a sua idade"); idade = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(idade); você deve usar Console.ReadLine e converter o retorno dele para inteiro. o console.read se nao me engano pega o valor do char do que você digita. []'s Compartilhar este post Link para o post Compartilhar em outros sites
satchii 0 Denunciar post Postado Outubro 6, 2009 Obrigado pessoal,agora funcionou. Então,toda vez que for precisar de uma entrada int,double,float e etc,tenho que usar o Convert.ToInt/float/double? Em Java usaria Integer.ParseInt,ja imaginei que em C# teria algo parecido,só não consegui achar exatamente o que,até achei um Parse procurando por aí,mas dava erro de compilação quando eu tentava fazer. Compartilhar este post Link para o post Compartilhar em outros sites
Rafael Mitsunaka 11 Denunciar post Postado Outubro 6, 2009 Existem 2 formas de conversão no .net o Convert.ToInt32 ou o Int32.Parse para qualquer tipo de variável! na entrada você precisa converter, pois ele retorna uma string e no seu caso, a sua variável era um inteiro. Compartilhar este post Link para o post Compartilhar em outros sites
Ivan.Teles 23 Denunciar post Postado Outubro 6, 2009 Na verdade existe várias formas de comverter ou até mesmo realizar cast. Convert.ToInt32(Console.ReadLine()); Int32.Parse(Console.ReadLine()); (int) Console.ReadLine(); O que eu recomendo e como boa pratica de programação usar try. exemplo: se você vai converter algo pra int e esse algo vem de informação fornecido pelo usuario o ideal é você fazer algo assim: int idade; Console.WriteLine("Informe a sua idade"); int.TryParse(Console.ReadLine(), out idade); //dessa forma caso o usuário tenha informado uma letra não dará erro em sua aplicação e o resturado será ZERO Console.WriteLine(idade); Compartilhar este post Link para o post Compartilhar em outros sites