foa*_*amu 3 c# methods performance return-value
private static char GetGuess()
{
char guess;
bool guessInputSuccess = false;
while (!guessInputSuccess)
{
Console.Write("Guess your letter: ");
char.TryParse(Console.ReadLine().ToLower(), out guess);
if (!char.IsLetter(guess))
{
Console.Write("You have not entered a letter from a-z.");
}
else
{
guessInputSuccess = true;
}
}
return guess;
}
Run Code Online (Sandbox Code Playgroud)
目前看来,我无法返回,guess因为它尚未分配。我通常会通过指定guess一个随机字符来解决这个问题。由于while循环将一直持续到输入az的有效字符为止,因此可以确信,返回时将az的字符分配给guess。我个人不喜欢这种解决方法,因为对我来说,它很草率。
我的问题是:有什么方法可以让猜测保持初始化,但在方法开始时仍未分配,并且仍然可以在方法执行结束之前正确设置和返回它?
输入正确的猜测后,请立即返回-并一直循环直到此为止。您完全不需要guessInputSuccess,并且guess可以具有较小的范围:
private static char GetGuess()
{
while (true)
{
Console.Write("Guess your letter: ");
if (char.TryParse(Console.ReadLine().ToLower(), out char guess) &&
char.IsLetter(guess))
{
return guess;
}
Console.Write("You have not entered a letter from a-z.");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
116 次 |
| 最近记录: |