C++之goto陈述

关键字 goto用于控制程式执行的顺序,使程式直接跳到指定标签(lable) 的地方继续执行。

形式如下

标签可以是任意的识别字,后面接一个冒号。

举例如下

复制代码
#include <iostream>
  
int main() {
    goto label_one;
    
    label_one: 
    {
        std::cout << "Label One" << std::endl;
        goto label_two;
    }
    
    label_two:
    {
        std::cout << "Label Two" << std::endl;
        goto label_three;
    }
    
    label_three:
    {
        std::cout << "Label Three" << std::endl;
    }
    
    return 0;
}

编译后执行,结果如下

复制代码
$ g++ u0509_1.cpp
$./a.out 复制代码
标签一
标签二
标签三
$

此例按标签的顺序,在每个标签下方都用大括弧围住一个程式区块,goto到了指定标签,就会执行标签下方的程式区块

复制代码
label_one: 
{
    std::cout << "Label One" << std::endl;
    goto label_two;
}

概念满简单的,上面利用标签顺序执行,下面我们另举一个例子,使goto具有回圈的效果

复制代码
#include <iostream>
  
int main() {
    int i = 1;
    if (i < 10) {
        goto label_one;
    }
    
    label_one:
    {
        std::cout << "Label One" << std::endl;
        goto label_three;
    }
    
    label_two:
    {
        std::cout << "Label Two" << std::endl;
    }
    
    label_three:
    {
        std::cout << "Label Three" << std::endl;
        i++;
        if (i < 10) {
            goto label_two;
        }
    }
    
    return 0;
}

编译后执行,结果如下

复制代码
$ g++ u0509_2.cpp
$./a.out 复制代码
标签一
标签三
标签二
标签三
标签二
标签三
标签二
标签三
标签二
标签三
标签二
标签三
标签二
标签三
标签二
标签三
标签二
标签三
$
相关推荐
alphaTao38 分钟前
LeetCode 每日一题 2026/2/2-2026/2/8
算法·leetcode
甄心爱学习42 分钟前
【leetcode】判断平衡二叉树
python·算法·leetcode
阿猿收手吧!1 小时前
【C++】string_view:高效字符串处理指南
开发语言·c++
颜酱1 小时前
从二叉树到衍生结构:5种高频树结构原理+解析
javascript·后端·算法
不知名XL1 小时前
day50 单调栈
数据结构·算法·leetcode
玄同7651 小时前
我的 Trae Skill 实践|使用 UV 工具一键搭建 Python 项目开发环境
开发语言·人工智能·python·langchain·uv·trae·vibe coding
Word码1 小时前
[C++语法] 继承 (用法详解)
java·jvm·c++
@––––––1 小时前
力扣hot100—系列2-多维动态规划
算法·leetcode·动态规划
Yorlen_Zhang1 小时前
Python Tkinter Text 控件完全指南:从基础编辑器到富文本应用
开发语言·python·c#
lxl13071 小时前
C++算法(1)双指针
开发语言·c++