goto 语句是最经典的计算机语句,叫"无条件转向语句",执行到它,无条件地跳到指定的标号所在地.
下面程序读入fin_list的一行,每一行是一个文件名.
[许多语句] 用来处理一个文件,处理完了goto entrance 又回到开始,再读一个文件名.读到fin_list结束,goto No_More,跳到No_More:
退出这段程序.
entrance:
....[许多语句]
....
goto entrance;
No_More: fclose(fin_list);
转向语句与标号配合使用.函数块里,标号名不可重名,(标号名如同路标).例如,可以有多个 goto No_More 语句,但只可有 一个No_More:;
转向语句只能从程序内层转向同一层或外层,但不可转向它的内层.
例如(正确的):
for (j=0;jn;j++){
Lab1:;
for (i=0;im;i++){
...
if (..) goto Lab1;
}
例如(错的):
if () goto Lab1:;
}};
C语言中的goto是一种跳转语句,类似于HTML语言中的锚点.
在执行代码时系统检查到有"goto XXX",就会跳过一段代码,不执行,直接执行"XXX:"后面的代码.
goto ? 操作符可以用来跳转到程序中的另一位置.该目标位置可以用目标名称加上冒号来标记,而跳转指令是 ? goto 之后接上目标位置的标记.
i=0;
start:
c=a+b;
a=b;
printf("%d",i);
for(i=0;i100;i++)
{
goto start
goto语句可以使程序在没有任何条件的情况下跳转到指定的位置,所以goto语句又被称为是无条件跳转语句.
它的语法如下
goto label;
//其它代码
label:
其中,label为我们自己定义的一个标签,定义的规则与变量的命名相同,它的位置是不固定的,它可以写在goto语句的后面,也可以写在它的前面,然而goto语句只能在一个函数内部跳转,它并不允许跳转出一个函数外部.
int day = 1;
loop:
printf("%d\n", day);
day++;
goto loop;
上面程序就是利用了goto和if语句来实现了循环功能,它与while实现的循环功能一样,其中loop为我们定义的一个label(标签).
扩展资料:
使用goto语句的建议
①.) 使用goto语句只能goto到同一函数内,而不能从一个函数里goto到另外一个函数里.
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语句.