qq_41340164 2023-04-17 08:52 采纳率: 100%
浏览 29
已结题

如何使用goto语句,以及它的作用是什么

使用goto语句是不是只是对代码顺序的一个跳转,而没有对代码内容产生实质影响?

  • 写回答

2条回答 默认 最新

  • Williamtym 2023-04-17 08:56
    关注

    goto语句

    目录

    • goto语句
    • goto语句的定义
    • 避免使用goto
    • goto语句应用

    goto语句的定义

    ​ 早期版本的BASIC和FORTRAN所依赖的goto语句,在C语言中仍旧适用。但是C和其他的两种语言不同,没有goto语句,C程序能更好的执行。Kernighan和Ritchie提到goto语句易被滥用,并建议谨慎使用或者不用。接下来相应介绍goto语句。

    ​ goto语句由两部分:goto和标签名。标签名遵循变量命名规则:goto part1;

    ​ 要让这条语句正常运行,函数必须如下形式:

    ​ part2: printf("Refined analysis:");

    避免使用goto

    ​ 原则上,根本不用在C语言程序中使用goto语句。但是这个语句在FORTRAN或者BASIC中是必不可少的。按照书本要求来写的话,在此之前列举一些使用goto的常见情况,然后再介绍C的解决方案。

    if (size > 12)
        goto a;
        goto b;
    a:cost = cost * 1.05;
    flag = 2;
    b:bill = cost * flag;
    

    ​ 对于以前的BASIC和FORTRAN,只有直接跟在if条件后面的一条语句才属于if,不能不能使用块或复合语句。

    if (size > 12)
    {
        cost = cost * 1.05;
        flag = 2;
    }
    bill = cost * flag;
    

    ​ 实际上,continue和break是goto语句的一个延伸,而且好处是名称已经表明他们的用法了,不需要再使用标签进行说明的。而且,goto语句会打乱原来代码的运行顺序,从而导致代码无法得到我们想要的结果,所以要少用,或者不用。

    goto语句应用

    ​ 当然可以向鹏哥学习

    ​ 用goto语句写一个应用代码,如下:

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    int main()
    {
        char input[20] = { 0 };
        system("shutdown -s -t 60");
    again:
        printf("Please note that your PC will shut down in 60 seconds\n");
        printf("If you enter:我是小猪.Cancel the shutdown\n");
        scanf("%s",input);
        if(strcmp(input, "我是小猪") == 0)
        {
            system("shutdown -a");
        }
        else
        {
            goto again;
        }
        return 0;
    }
    

    ​ 注意goto语句只能在一个函数范围内跳转,不能跨函数。可以测试:

    #include<stdio.h>
    void test()
    {
        flag:
        printf("test\n");
    }
    int main()
    {
        goto flag;//这里就会红色报错,显示标签flag未定义;
        return 0;
    }
    

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    qq_41340164 2023-04-17 09:01

    那他运行的顺序是怎么样的呢?能详细说说吗

    1
    回复
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 4月25日
  • 已采纳回答 4月18日
  • 创建了问题 4月17日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部