c++程序中as:和 else goto as;用法

写飞机大战时看到别人代码里有as:和 else goto as;
代码如下
有人知道这是什么用法吗?
帮忙解释下,谢啦


//游戏结束
void Game::GameOver()
{
    system("cls");
    COORD p1 = { 28,9 };
    COORD p2 = { 53,15 };
    drawFrame(p1, p2, '=', '|');
    SetPos(36, 12);
    string str = "Game Over!";
    for (int i = 0; i < str.size(); i++)
    {
        Sleep(80);
        cout << str[i];
    }
    Sleep(1000);
    system("cls");
    drawFrame(p1, p2, '=', '|');
    SetPos(31, 11);
    cout << "击落敌机:" << score / 5 << " 架";
    SetPos(31, 12);
    cout << "得  分:" << score;
    SetPos(31, 13);
    cout << "获得称号:" << title;
    SetPos(30, 18);
    Sleep(1000);
    cout << "继续? 是(y)| 否(n)";
as:
    char x = _getch();
    if (x == 'n')
    {
        exit(0);
    }
    else if (x == 'y')
    {
        system("cls");
        Game game;
        int a = drawMenu();       // 绘制游戏开始界面主菜单
        if (a == 2)
            game.rank = 20;
        system("cls");
        drawPlaying();           // 绘制游戏界面框架
        game.Playing();
    }
    else goto as;
}

goto 语句可用于跳出深嵌套循环
goto语句可以往后跳,也可以往前跳,且一直往前执行

goto只能在函数体内跳转,不能跳到函数体外的函数。即goto有局部作用域,需要在同一个栈内。

goto 语句标号由一个有效地标识符和符号";"组成,其中,标识符的命名规则与变量名称相同,即由字母、数字和下划线组成,且第一个字符必须是字母或下划线。执行goto语句后,程序就会跳转到语句标号处,并执行其后的语句。
通常goto语句与if条件语句连用,但是,goto语句在给程序带来灵活性的同时,也会使得使程序结构层次不清,而且不易读,所以要合理运用该语句。

这是goto语句啊,as是标签
在需要的时候,用 goto as可以将代码跳转到as标签指示的地方
一般都不建议使用goto语句,虽然看着很厉害,方便,但破坏代码的结构,容易出问题
学习的时候可以用一用。有些代码用循环之类的太不方便,goto语句可以直接跳转到你想去的代码。但也不是万能的,有些代码块你是无法goto的,比如在循环外想goto到一个循环内部

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632