用几个IF构建一个FOR循环,并使其仅在某些运行中停止

jon*_*atr 1 c# arrays loops for-loop

我有一个2D数组,其中一些成员是数字(playerID -1,2,3,4等),其余为零.

我想创建一个包含各种检查方法的for循环,这些方法通过循环并返回一个答案.对检查进行排序,以便当其中一个较高的检查返回TRUE时,该playerID的循环可以终止.后来我想使用检查结果来比较玩家,但首先是第一件事 - 我无法让大型FOR循环运行.

我记得这样的事情:

for (int playerID = 1; playerID <= participants; playerID++)
{
    checkA = Check4forsequenceof4(matrix); //method A
    if (checkA == 0)
        continue;
    else
        Console.WriteLine(p + "completed check A");
        break;
    if (checkB == 0)
       continue;
    else
        Console.WriteLine(p + "completed check B");
        break;
    if (checkC == 0)
       continue;
    else
        Console.WriteLine(p + "completed check C");
        break;
}
Run Code Online (Sandbox Code Playgroud)

问题是:休息突破了FOR循环,而不仅仅是if,我想不出如何检查下一个playerID,也无法弄清楚如何最好地存储每个玩家的结果以后显示.

Ree*_*sey 5

首先,如果你想做这个工作,你不能依靠缩进 - 你需要大括号:

        if (checkA == 0)
            continue;
        else
        {
            Console.WriteLine(p + "completed check A");
            break;
        }
Run Code Online (Sandbox Code Playgroud)

这将解决您的循环立即爆发的直接问题.

话虽如此,鉴于上述检查,你永远不会检查B.我怀疑你想要反转你的逻辑,因为:

        if (checkA != 0)
        {
            Console.WriteLine(p + "completed check A");
            break;
        }
Run Code Online (Sandbox Code Playgroud)

这将导致checkA运行,然后checkB等.