我一直在用 C# 编写文本冒险游戏。我想做一个你遇到口袋妖怪的场景。我想要遇到 3 个随机口袋妖怪,我做了一个方法来返回你找到的口袋妖怪的名字。代码是:
public string choosePokemon()
{
Random random = new Random();
int pokemonChosen = random.Next();
if (pokemonChosen == 1)
{
string pokemon = "Pidgey";
return pokemon;
}
if (pokemonChosen == 2)
{
string pokemon = "Charmander";
return pokemon;
}
if (pokemonChosen == 3)
{
string pokemon = "Geodude";
return pokemon;
}
return "missingno";
}
每当我执行代码时,它都会说“你遇到了一个 missingno!”。我想让它返回名称并打破方法,返回到场景的方法。我在末尾放置了一个 return "missingno";
,因为 Studio 会给我一个错误,即并非所有代码路径都返回一个值。
最佳答案
问题是您的 random.Next()
调用返回随机范围内的任何数字 - 您需要 random.Next() 的替代版本,它只返回 1、2、或 3,或者您需要自己执行。尝试这样做:int pokemonChosen = random.Next(1, 4)
(下限包含在内而上限不包含)
关于c# - 在 if 语句中返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19190949/