• 4.0、C语言——goto语句


    4.0、C语言——goto语句

            C语言中提供了可以随意滥用的goto语句和标记跳转的标号【这里建议大家在写代码的过程中尽量不要使用 goto 语句,在实在没有办法的情况下再去使用】

            从理论上 goto 是没有必要的,实践中没有 goto 语句也可以很容易的写出代码

            但是某些场合下 goto 语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程,例如一次跳出两层或多层循环

            这种情况使用break是达不到目的的,他只能从最内层循环退出到上一层的循环

    下面是使用 goto 语句的一个例子:

    1. int main() {
    2. again:
    3. printf("goto again");
    4. goto again;
    5. return 0;
    6. }

            运行的结果就是 不断的打印 goto again 陷入这么一个死循环

    再举一个例子:

    1. int main() {
    2. printf("goto again");
    3. goto again;
    4. printf("被 goto 跳过去了");
    5. again:
    6. printf("goto 跳转至此...");
    7. return 0;
    8. }

            这里 goto 也打乱了我们代码的正常执行顺序,直接跳过了一行代码;所以用了 goto 语句之后会很混乱可能会导致 bug,
            所以我们应该在适合的情景下使用该 goto 语句:         

          

            上图中有三个 for 嵌套循环,如果要跳出最外面那个for至少需要三个 break,但是 goto 语句只用这一句代码就可以直接跳出三层循环

            下面给大家看一个好玩的代码 -> 打开程序执行 -> 提示如果在60内不输入 "取消关机",电脑将自动关机~

    1. #define _CRT_SECURE_NO_WARNINGS 1
    2. #include
    3. #include
    4. #include
    5. #include
    6. #include
    7. #include
    8. int main() {
    9. char input[20] = {0};
    10. system("shutdown -s -t 60");
    11. again:
    12. printf("请注意,你的电脑将在1分钟内关闭,如果输入:取消关机,将终止该命令~ \n 请输入>:");
    13. scanf("%s",&input);
    14. if (strcmp(input,"取消关机") == 0) {
    15. system("shutdown -a");
    16. }
    17. else {
    18. goto again;
    19. }
    20. return 0;
    21. }

    那么这里也用到了 goto() 函数,虽然说用 while() 循环也能实现

  • 相关阅读:
    实现element 下拉选择分页加载
    如何修改CentOS登录时默认目录
    React 入门:实战案例 TodoList 添加一条 Todo 到列表
    低代码开发平台NocoBase的安装
    【YesPMP】众包平台,4月26日最新项目
    Golang入门:协程(goroutine)
    看动画,学Java基础教程12:关键字
    一. HTML基础开发标签
    Linux线程间交互
    连接图书馆wifi无法验证如何解决
  • 原文地址:https://blog.csdn.net/m0_52433668/article/details/126183164