扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
goto意为“跳转”的意思,顾名思义,跳转肯定要有目的地,不然跳到哪里去?所以goto后面应该跟一个标签(该标签表示位置);
成都创新互联长期为上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为文峰企业提供专业的网站建设、网站设计,文峰网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。
例如用loop标签标记一个跳转点,所那么goto
loop;就实现了跳转到loop标签标记的位置。
loop:
code;
……
……
goto
loop;
goto语句也称为无条件转移语句,其一般格式如下:
goto 语句标号; 其中语句标号是按标识符规定书写的符号, 放在某一语句行的前面,标号后加冒号(:)。语句标号起标识语句的作用,与goto 语句配合使用。
#include"stdio.h"
int main(void)
{
int n=0;
printf("input a string :\n");
loop: if(getchar()!='\n')
{
n++;
goto loop;
}
printf("%d",n);
}
以上面的例子来说明,如果用户输入的字符不是回车符,那么返回loop处继续接收用户输入的字符;如果用户输入回车符,那么跳出共同语句,执行printf语句。
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语句
goto
用在内层循环中比较合适,
用
break
只能跳出内层循环,
而
goto
可以直接跳出最外层循环,在合理的地方使用就可以了。
不要频繁的使用goto,过多的使用goto语句,会使程序混乱
从理论上讲,goto语 句是没有必要的,实践中不使用goto语句也可以很容易地写出代码
但是,在某些场合下goto语句还是用得着的。
最常见的用法是终止程序在某些深度嵌套 的结构中的处理过程,
例如一次跳出两层或多层循环。这种情况下使用break语句是不能达 到目的的,
它只能从最内层循环退出到上一级的循环
所有使用了goto语句的程序代码都能改写成不带goto语句的程序,
但可能会增加一些 额外的重复测试或变量
标号的命名同变量命名的形式相同,标号的后面要紧跟一个冒号。
标号可以位于对应的 goto语句所在函数的任何语句的前面。标号的作用域是整个函数。
goto 是转向语句
goto 标号;
例
int x=1;
biaohao:
x=x+1;
if(x100)
goto biaohao;
cout"x=100"endl;
//当x小于100,执行if 后面的goto语句,
于是转跳到biaohao处执行biaohao后面的语句x=x+1,接着if语句,
如此反复。。。。。。,
直到x=100 if语句括号表达式为假不执行后面的goto语句,
于是跳过执行cout语句输出x=100这几个字符
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流