为了账号安全,请及时绑定邮箱和手机立即绑定

前辈看看这是怎么了?怎么就只编译运行后就输出一个数字1

前辈看看这是怎么了?怎么就只编译运行后就输出一个数字1

C
qq_龙戈_0 2017-10-07 18:10:03
#include <stdio.h>int main(){int sum=0;int i;for(i=1;i<=10;i++){ printf("%d\n",i); if(i==3); { goto Loop; }}Loop:printf("结束for循环了....");return 0;}
查看完整描述

3 回答

已采纳
?
望远

TA贡献1017条经验 获得超1032个赞

for(i=1;i<=10;i++)
{
printf("%d\n",i);
if(i==3);//if语句执行的是空语句,导致goto语句无需条件即可执行。
//当i==1时执行goto语句跳出循环,只输出1
{
goto Loop;
}
}
Loop:printf("结束for循环了....");
//改动后
for(i=1;i<=10;i++)
{
printf("%d\n",i);
if(i==3)
{
goto Loop;
}
}
Loop:printf("结束for循环了....");
输出 :
1
2
3
/*尽量不要在程序中使用goto语句,这极大的破坏了程序的结构性
goto语句会使程序的静态结构和动态结构不一致,从而使程序难以理解且难以查错。
并且G·加科皮尼和C·波姆从理论上证明了:任何程序都可以用顺序、分支和重复结构表示出来。
这个结论表明,从高级程序语言中去掉goto语句并不影响高级程序语言的编程能力,
而且编写的程序的结构更加清晰。
*/


查看完整回答
1 反对 回复 2017-10-07
?
望远

TA贡献1017条经验 获得超1032个赞

if(i==3);这个if语句执行的是空语句。

查看完整回答
1 反对 回复 2017-10-07
?
大大叶5529

TA贡献10条经验 获得超1个赞

这是goto语句,当程序运行第一遍的时候执行到这里就会跳出函数体,然后接return结束了。

查看完整回答
反对 回复 2017-10-07
  • 3 回答
  • 1 关注
  • 1662 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信