我该如何从方法中返回某些内容来中断C#中的循环?

时间:2019-01-11 21:29:13

标签: c# loops methods

我正在为自己编写一个小游戏。在此游戏中,我使用的方法包含一个循环,以将数字生成到适合于游戏中使用的一组特定条件的char数组中。至少对于我的基本C#知识而言,这使数字生成相当复杂,我想将其保留在单独的方法中。

我遇到的问题是,我需要创建一个循环,让播放器通过按退出按钮使自己破碎,但是如果播放器想要继续,则播放会重新启动循环,但是而且通过另一种方法生成新的数字。

我应该在另一个方法中调用该方法吗?如果是这样,我该怎么办?

public static void method2 ()  method1();

我应该在游戏方法之外进行循环,从而生成一个新的数字吗?如果是这样,如何从void方法返回某些内容以退出循环(将x更改为false)?

do method2(method 1) while (x = true)

我愿意更改我的method2,因此,如果有人可以使用更好的类型,那么它就不是无效方法。

如果有人需要特定的代码,我可以提供链接或编辑问题以包括它,但是它很长(超过100行)!

1 个答案:

答案 0 :(得分:0)

我认为您正在描述的一个相当典型的模式如下:

bool keepPlaying = true;
while (keepPlaying)
{
    var number = GenerateNumber();
    // ... more code
    keepPlaying = AskIfUserWantsToPlayAgain();
}

但是,最好使用其他构造来达到相同的结果:

while (true)
{
    var number = GenerateNumber();
    // ... more code
    var keepPlaying = AskIfUserWantsToPlayAgain();
    if(!keepPlaying)
    {
        break; // or `return`, if this is your entire method.
    }
}