Use of unassigned local variable "Converted"

Hey. I have a problem with my function.

Here’s the code:


    	string ConvertDifficulty(int difficulty) {
    		string Converted;
    		switch (difficulty) {
    		case 1:
    			Converted = "Easy";
    			break;
    		case 2:
    			Converted = "Medium";
    			break;
    		case 3:
    			Converted = "Hard";
    			break;
    		}
    		return Converted;
    	}

And I got an error described above.
Why is it happening? Can I declare new variables inside functions? I always thought i can…
What’s wrong with this function?

Initialise the string to some value. Replace:

string Converted;

with:

string Converted = "";

Otherwise there’s a chance that your function will fall through the entire switch() statement without Converted ever being assigned a value (if difficulty is some value other than 1,2, or 3), which is what the error message is complaining about.

string ConvertDifficulty(int difficulty) {
string Converted;
switch (difficulty) {
case 1:
Converted = “Easy”;
break;
case 2:
Converted = “Medium”;
break;
case 3:
Converted = “Hard”;
break;
}
return Converted;
}

If you consider the code above not all code paths assign a value to Converted, as an example if difficulty is set to 4 then none of the cases in your switch will apply.

The easy solution is to initialize converted with a value on the same line it’s declaration:

    string Converted = "";

I thought so, thanks alot.