吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1580|回复: 14
收起左侧

[求助] C语言 goto使用问题

[复制链接]
叫哥给你买糖 发表于 2020-3-31 17:41


在 if 判断中使用goto, 当条件不成立的时候, goto语句也会被执行吗?  为什么?

源代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i = 1;
    for(i; i <5 ; i++) {
        printf("%d\n" , i);
        if(i > 10)
        {
            goto TiaoChu;
        }
    }
TiaoChu:
    printf("程序结束\n");
    return 0;
}


输出结果:
1
2
3
4
程序结束

if判断没有成立, goto语句也被执行了。  goto语句总会被执行吗?



发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

罗萨 发表于 2020-3-31 17:55
最好不要用goto语句,想跳出循环的话可以使用break语句;
MockingJay 发表于 2020-3-31 17:57
Dijkstra说过代码质量可以看goto语句的数量,越多越差。
咕咚陛下 发表于 2020-3-31 17:57
gunxsword 发表于 2020-3-31 18:01
我觉得你这个问题问的真的很蠢,你那是条件不成立才执行的GOTO吗,你那是FOR执行完了,顺行执行的.....
wendaoqi 发表于 2020-3-31 18:02
goto只是起到一个转跳位置的作用,for结束了代码往下走,并没有执行goto
魔术使nqy 发表于 2020-3-31 18:14
没有执行,你把 程序结束 那句话放到上面去看看就明白了,如果执行了goto那么它会跳上去执行的。
鬼魅王子 发表于 2020-3-31 18:36
不要用goto了解一下作用就可以了
luanshils 发表于 2020-3-31 18:36
你的i不满足当然不执行,虽然goto叫无条件跳转,但是你也要能执行到goto这一条语句啊
xieyunsky 发表于 2020-3-31 18:43
你这个goto是没有执行的。你的循环条件是i < 5,所以输出了 1 2 3 4,你在for里面的判断if(i > 10)是没有进入过的。当for执行完毕,会继续往下走,走到你的TiaoChu标号的位置,然后继续执行你的printf语句。goto只是无条件跳转,但是程序里面的 image.png 语句还是会顺序执行的。你可以试试把if(i > 10)改成if(i > 3)  你就可以看到会输出两次 程序结束 了。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 18:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表