十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
goto语句也称为无条件转移语句,其一般格式如下: goto 语句标号; 其中语句标号是按标识符规定书写的符号, 放在某一语句行的前面,标号后加冒号(:)。语句标号起标识语句的作用,与goto 语句配合使用。
目前成都创新互联公司已为超过千家的企业提供了网站建设、域名、网页空间、网站托管、服务器托管、企业网站设计、行唐网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
如: label: i++;
loop: while(x7);
goto loop;
C语言不限制程序中使用标号的次数,但各标号不得重名。goto语句的语义是改变程序流向, 转去执行语句标号所标识的语句。
goto语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。
扩展资料:
go to语句使用原则:
1、使用goto语句只能goto到同一函数内,而不能从一个函数里goto到另外一个函数里。
2、使用goto语句在同一函数内进行goto时,goto的起点应是函数内一段小功能的结束处,goto的目的label处应是函数内另外一段小功能的开始处。
3、不能从一段复杂的执行状态中的位置goto到另外一个位置,比如,从多重嵌套的循环判断中跳出去就是不允许的。
4、应该避免向两个方向跳转。这样最容易导致"面条代码"。
参考资料:百度百科-goto语句
return
就是退出当前的方法(函数),在这里就是退出main方法,也就是程序结束了
当i=0,1,2时候,i2不满足,所以不会执行return
都继续往下走,
就会碰到goto(因此产生循环流程),这就三次了
当i=2时,return
不执行,所以下面的i++执行了,
i变成3,仍然小于5,
所以回到ss的地方,输出了第四次循环的信息,然后判断i2成立,退出
所以一共4次
补一句题外话:正常人是不会用goto的,没有必要去研究它,浪费时间
#includestdio.h
#includemath.h
#includestdlib.h
int main()
{
int i=0,n=0,j=0,k=0;
char a[64];
here: printf("输入一个2进制数:");
while((a[i]=getchar())!='\n')
{
n++;
i++;
}
for(j=0;jn;j++)
{
if(a[j]='2'||a[j]='/')
{ printf("X!%d:\t%c",j,a[j]);
i=0;//加上这一句重置a
n=0;//加上这一句重置n
goto here;
}
}
for(j=0;jn;j++)
{
k+=(int)(a[j]-48)*pow(2,n-1-j);
}
printf("输出一个10进制数:%d\n",k);
return 0;
}
for ( i=0;i10;i++ ) { ... }
等同于
i=0;
LOOP:
if ( i10 ) {
...
i++; goto LOOP;
}
goto语句可以使程序在没有任何条件的情况下跳转到指定的位置,所以goto语句又被称为是无条件跳转语句。
它的语法如下
goto label;
//其它代码
label:
其中,label为我们自己定义的一个标签,定义的规则与变量的命名相同,它的位置是不固定的,它可以写在goto语句的后面,也可以写在它的前面,然而goto语句只能在一个函数内部跳转,它并不允许跳转出一个函数外部。
int day = 1;
loop:
if (day = 31)
{
printf("%d\n", day);
day++;
goto loop;
}
上面程序就是利用了goto和if语句来实现了循环功能,它与while实现的循环功能一样,其中loop为我们定义的一个label(标签)。
扩展资料:
使用goto语句的建议
1) 使用goto语句只能goto到同一函数内,而不能从一个函数里goto到另外一个函数里。
2) 使用goto语句在同一函数内进行goto时,goto的起点应是函数内一段小功能的结束处,goto的目的label处应是函数内另外一段小功能的开始处。
3) 不能从一段复杂的执行状态中的位置goto到另外一个位置,比如,从多重嵌套的循环判断中跳出去就是不允许的。
4)应该避免向两个方向跳转。这样最容易导致"面条代码"。
参考资料来源:百度百科-goto语句
不是不执行,是执行完了被11111111111111覆盖了,你把goto b注释掉就看到了,
a执行完执行goto b,然后输出10000000000000000000,然后在goto b无限循环了