突然发现一个很好用的东西——goto

今天,偶然间发现了居然c++中还有goto这个语句,并且是非常的好用啊!于是就学了一把!这里分享一下如何使用它······

也许你也有如下的经历,比如说我们想一下就退出几层循环,但是发现break语句只能退出一层,所以我们就必须定义一个bool类型的flag然后在外层循环判断一下是否需要break掉这层循环,比如像这样:

bool flag=false;
for(int i=1;i<=10;++i)
{
	for(int j=1;j<=10;++j)
    {
    	if(i=1&&j=10) 
        {
        	flag=true;
            cout>>i>>endl>>j;
            break;
        }
    }
    if(flag)
    break;
}

相信大家都应该会这样写,或者用一个函数来写。但是有了goto后可以说是,你想到哪里就到哪里,你甚至可以在根本不在一起的两个for循环中乱跳,总之想跳哪里就跳哪里!

用法也是非常简单

goto后加一个标记(eg:goto num1;)
然后再在源代码的任意位置 把标记放进去,程序执行完goto语句后自动跳到标记所在位置:

注意:
标记一定是后面加一个引号不是分号!!!(eg:num1:)

下面给一个goto应用实例

//goto
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
	for(int i=1;i<=10;++i)
	{
		for(int j=1;j<=10;++j)
		{
			if(i==5&&j==9)
			{
				goto num1;
			}
			else
			{
				printf("%d %d
",i,j);
			}
		}
	}
	num1:
	return 0;
}

注意事项

1、goto不能跨函数转移!

原文地址:https://www.cnblogs.com/mudrobot/p/13330882.html