我正在尝试创建一个会接受数字的程序,然后重新添加它。
例如:
这是我的代码:
int input = Console.Read();
int total = 0;
for (int i = 0; i <= input; i++)
{
total += i;
}
Console.Write(total);
当我输入任何数字时,我会得到一个巨大的数字。例如,输入三个返回1326.为什么?
答案 0 :(得分:6)
使用:
int input = int.Parse(Console.ReadLine());
从控制台读取一个数字。您将获得3
char的ASCII代码,即51
。
基本上与(int)'3'
相同(给51
)
Console.ReadLine()
从控制台读取整行string
。然后调用int.Parse
来解析该字符串中的数字。
因此,如果您输入3
并按enter
,您将获得与以下相同的功能:
int input = int.Parse("3"); //input will have 3 as integer
int total = 0;
for (int i = 0; i <= input; i++)
{
total += i;
}
Console.Write(total); //prints 6
注意:考虑使用int.TryParse
,因为您永远不知道用户的输入是否可以表示为整数。如果您将错误的字符串传递给FormatException
,您将获得int.Parse
。
答案 1 :(得分:3)
这是因为Console.Read
不读取表示为字符序列的整数的十进制表示(尽管其签名另有说明)。它读取一个字符,并返回其ASCII码。
字符'3'
的代码是51; the sum of numbers from zero to 51是51 * 52/2 = 1326,即打印的数字。