Reputation: 143
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);
I want my programme to show the sum of all numbers entered by user, by even though I have parsed all the variables needed, it throws an "cannot implicitly convert type 'string' to 'int'" error. What's wrong?
Upvotes: 2
Views: 8019
Reputation: 14153
I would rewrite this entirely (Your original error was because you were trying to add a string
to an int
, and not the parsed input as an 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;
}
Upvotes: 1
Reputation: 2236
to check if the input of the user is right i would prefer
int userInput = 0;
if( int.TryParse( input, out userInput ) == false )
{
break;
}
This is just an advise and not directly a solution to your problem. There are enough answers =)
Upvotes: 4
Reputation: 13399
int inputParsed = int.Parse (input.ToString ());
//int sumParsed = int.Parse (sum.ToString ());//no need
sum = sum + inputParsed ;
Upvotes: 2
Reputation: 5606
sum = sum + input; //throws an error here
should be:
sum = sum + inputParsed ;
You are using the original input instead of the parsed value. And you don't need sumParsed
because you just keep the total sum in sum
and you do no need to cast the int to a string and then parse it back to an integer.
Upvotes: 8