Console.WriteLine ("Please enter some numbers");
int sum = 0;
for(;;)
{
string input = Console.ReadLine ();
if (string.IsNullOrEmpty (input))
{
break;
}
int inputParsed = int.Parse (input.ToString ());
int sumParsed = int.Parse (sum.ToString ());
sum = sum + input; // throws an error here
Console.WriteLine (sum);
我希望我的程序显示用户输入的所有数字的总和,即使我已经解析了所需的所有变量,它也会抛出“无法隐式转换类型'字符串'到'int'”错误。怎么了?
答案 0 :(得分:7)
sum = sum + input; //throws an error here
应该是:
sum = sum + inputParsed ;
您正在使用原始输入而不是已解析的值。并且您不需要sumParsed
,因为您只需将总和保留在sum
中,并且您不需要将int转换为字符串,然后将其解析回整数。
答案 1 :(得分:4)
检查用户的输入是否正确我希望
int userInput = 0;
if( int.TryParse( input, out userInput ) == false )
{
break;
}
这只是一个建议,而不是直接解决您的问题。 有足够的答案=)
答案 2 :(得分:2)
int inputParsed = int.Parse (input.ToString ());
//int sumParsed = int.Parse (sum.ToString ());//no need
sum = sum + inputParsed ;
答案 3 :(得分:1)
我会完全重写这个(你原来的错误是因为你试图将string
添加到int
,而不是将解析后的输入添加为int
)
Console.WriteLine ("Please enter some numbers");
int sum = 0;
while (true)
{
int parsedInput = 0;
string input = Console.ReadLine();
if (!string.IsNullOrEmpty(input) && int.TryParse(input, out parsedInput))
{
sum += parsedInput;
Console.WriteLine (sum);
}
else
break;
}