'Try statement doesn't always run? [duplicate]
i encountered an error "Use of unassigned variable 'attempt'" when i run the code below, i don't understand the reason because as i understand the try statement block always runs so the variable should be assigned by the user ? Or am i wrong ? If anyone has i fix or work around that would be helpful.
static void MagicNumber(int rndMin, int rndMax, int lives = 4)
{
Random rnd = new Random();
int rndNum = rnd.Next(rndMin, rndMax);
int attempt;
do
{
try
{
Console.WriteLine($"Remaining lives : {lives}");
Console.WriteLine($"Enter a number between {rndMin} and {rndMax} :");
attempt = int.Parse(Console.ReadLine());
}
catch
{
Console.WriteLine("Error : Enter a number !");
}
} while ((lives > 0) || (attempt < rndMin) || (attempt > rndMax));
}
MagicNumber(1, 40, 5);
Solution 1:[1]
An exception can be thrown in the try block prior to setting a value for attempt. You handle the exception so it's then possible for attempt to be referenced before being assigned a value.
Best practice is to always assign an initial value to variables.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Moho |
