- Home /
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?
Doing as @tanoshimi says or adding a 'default' clause to your 'switch' statement will fix the problem. To understand the issue, what value would be returned if you passed in some value other than 1, 2, or 3 to your ConvertDifficulity() method? Undefined.
Answer by tanoshimi · Jan 11, 2014 at 05:13 PM
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.
Answer by KellyThomas · Jan 11, 2014 at 05:18 PM
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 = "";
Your answer
Follow this Question
Related Questions
The name 'Joystick' does not denote a valid type ('not found') 2 Answers
Decrease a value during a certain amount of time based on another value 1 Answer
Weird Code Error Message 2 Answers
How to import the object from server to unity 2 Answers
Can someone help me fix my Javascript for Flickering Light? 6 Answers