c# - 在 if 语句中返回

标签 c# if-statement return

我一直在用 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/

相关文章:

Java 不返回任何内容的递归

c# - 外语的语音转文本和文本转语音

c# - 帮助优化整数数学

mysql - CONCAT(meta_key,meta_value) 到 wp_postmeta 表中的不同列

jquery - 如果 $ ('img' ).attr ("src", "")

Java泛型方法

c# - 使用 C# 和正则表达式解析源代码并查找带参数的函数调用

javascript - 解析 KendoEditor TextArea 中的特殊字符

java - Java 中本地、开放和递归时的 boolean 值困惑

python - 如何使用 `return` 从循环中取回多个值?我可以把它们放在一个列表中吗?