Estou fazendo alumas práticas e ao informar a idade, 29, por exemplo, percebo que a variavel recebe o número 50, mas não consigo identificar o motivo.
Obrigado pela atenção!
Estou fazendo alumas práticas e ao informar a idade, 29, por exemplo, percebo que a variavel recebe o número 50, mas não consigo identificar o motivo.
Obrigado pela atenção!
Olá Luiz, Beleza?
Isso acontece porque o comando Console.Read()
não é usado para esse propósito, ele apenas lê 1 caracter de entrada e retorna o seu valor ASCII.
No seu caso, você estava digitando o valor 29, ele apenas capturava o valor 2 e se você ver na tablea ASCII, o caracter 2 tem valor decimal 50.
No seu caso, seria legal se você usasse o Console.ReadLine
da mesma forma que fez para capturar a entrada do nome, e logo em seguida você o converte para inteiro.
Algo assim:
Console.WriteLine("Hello World!\n\n");
Console.Write("Digite seu nome: ");
string nome = Console.ReadLine();
Console.Write("Digite sua idade: ");
string idadeString = Console.ReadLine();
//uma simples validação de entrada para caso o usuario
//informar um numero invalido
if(!int.TryParse(idadeString, out int idade))
{
Console.WriteLine("Idade informada não é um numero inteiro válido!");
}
else
{
Console.WriteLine($"\nNome: {nome}");
Console.WriteLine($"Idade: {idade}\n");
}
Console.WriteLine($"\nExecução finalizada, {nome}. Aperte qualquer tecla para continuar.");
Console.ReadLine();
Valeu, Marcão!
Muito obrigado!