Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

satchii

[Resolvido] Problema com variavel Int em C#

Recommended Posts

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

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

 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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.