并非所有代码路径都返回值?需要帮助
本文关键字:返回值 帮助 路径 代码 | 更新日期: 2023-09-27 18:33:23
我正在制作一个 c# 控制台棋盘游戏,我在尝试解决当前链接到静态 int ResetGame(( 部分的错误时遇到问题。 显然,并非所有代码路径都返回值。我该如何解决这个问题?
static int ResetGame()
{
Console.WriteLine("Welcome to Tactical Space Cheese Racer");
Console.WriteLine("");
Console.WriteLine("Press any Key to continue");
Console.ReadLine();
Console.Clear();
Console.WriteLine("Please enter the number of players that wish to play (2-4) : ");
int NoOfPlayers = int.Parse(Console.ReadLine());
Console.WriteLine("");
for (int i = 0; i < NoOfPlayers; i++)
{
Console.WriteLine("");
Console.WriteLine("Please enter the name of the player: " + i + i++);
Console.WriteLine("");
players[i].Name = Console.ReadLine();
players[i].Pos = 0;
}
}
如果您需要查看它来解决问题,我有更多可用的代码
您遇到的问题是您的方法应该返回一个int
而您不返回它。
如果您不想返回任何内容,则应声明您的方法是void
方法。
static void ResetGame()
{
}
正如我可以从您的代码中得出结论,这可能是您的意图。因此,使您的方法void
,您将不会有任何问题。
此外,我必须对你设置玩家数量的方式做一个旁注。如果用户输入非整数值,您将收到一个您不处理的异常。除此之外,如果用户输入大于 4 的整数,那应该不行。话虽如此,您应该注意上述两点。
int numberOfPlayers = -1;
Console.WriteLine("Please enter the number of players that wish to play (2-4) : ");
// The method Int32.TryParse parses the input and check if it
// can be represented as a 32-bit integer number.
// If parse succeeds, then the value is assigned to numberOfPlayers
// and the method returns true. Otherwise, it returns false.
while(!Int32.TryParse(Console.ReadLine()), out numberOfPlayers) &&
!(numberOfPlayers>2 && numberOfPlayers<4))
{
Console.WriteLine("Please enter a valid number between (2-4): ");
}
更新
Idle_Mind在他的评论中指出了以下内容:
我会说他需要返回球员数量。
如果是这种情况,您只需在方法的右大括号之前添加它:
return numberOfPlayers;
我想你会保留我的命名。如果您保留您的变量,只需将变量的名称更改为您的即可。