我有一个二维数组,它的一些成员是数字(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;
}
问题是:break 从 FOR 循环中跳出,而不是仅从 if 中跳出,我想不出如何检查下一个 playerID,也想不出如何最好地存储结果每个播放器供以后显示。
最佳答案
首先,如果你想让它工作,你不能依赖缩进——你需要大括号:
if (checkA == 0)
continue;
else
{
Console.WriteLine(p + "completed check A");
break;
}
这将解决您立即出现的循环立即爆发的问题。
话虽如此,鉴于上述检查,您永远不会检查 B。我怀疑您想要反转您的逻辑,因此:
if (checkA != 0)
{
Console.WriteLine(p + "completed check A");
break;
}
这将导致 checkA 运行,然后运行 checkB,等等。
关于c# - 使用多个 IF 构建 FOR 循环并使其仅在某些运行中停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8479236/