一直很喜欢用goto,它很灵活,但是教材、网上,都说goto不好...
一次性跳出多重循环不但能保证某些情况下的数据正确运算,而且显著提高执行效率,跳出多重循环不用goto怎么办呢...
周五晚上正好需要处理一个多重循环的问题,想到调用函数执行运算,然后return。
使用goto方式:
static void Main(string[] args)
{
int x = 0;
for (int i = 0; i < 100; i++)
{
for (int j = 0; j < 100; j++)
{
for (int k = 0; k < 100; k++)
{
for (int p = 0; p < 100; p++)
{
for (int q = 0; q < 100; q++)
{
for (; x < 100; x++)
{
if (2 == x)
{
goto MyOut;
}
}
}
}
}
}
}
MyOut:
Console.WriteLine(x);
}
不使用goto方式:
private static int MyOut(int x)
{
for (int i = 0; i < 100; i++)
{
for (int j = 0; j < 100; j++)
{
for (int k = 0; k < 100; k++)
{
for (int p = 0; p < 100; p++)
{
for (int q = 0; q < 100; q++)
{
for (; x < 100; x++)
{
if (2 == x)
{
return x;
}
}
}
}
}
}
}
return -1;
}
static void Main(string[] args)
{
int x = 0;
Console.WriteLine(MyOut(x));
}