goto语句

Python017

goto语句,第1张

goto语句也称为无条件转移语句,其一般格式如:goto 语句标号; 其中语句标号是按标识符规定书写的符号, 放在某一语句行的前面,标号后加半角冒号“:”。语句标号起标识语句的作用,与 goto 语句配合使用。

C语言不限制程序中使用标号的次数,但各标号不得重名。goto 语句的语义是改变程序流向, 转去执行语句标号所标识的语句。

goto 语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。

但是,在结构化程序设计中一般不主张使用 goto 语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。

goto语句的争论

在20世纪60年代末和70年代初,关于 goto 语句的用法的争论比较激烈。主张从高级程序语言中去掉 goto 语句的人认为,goto 语句是对程序结构影响最大的一种有害的语句,他们的主要理由是: goto 语句使程序的静态结构和动态结构不一致,从而使程序难以理解,难以查错。

去掉 goto 语句后,可直接从程序结构上反映程序运行的过程。这样,不仅使程序结构清晰,便于理解,便于查错,而且也有利于程序的正确性证明。

持反对意见的人认为, goto 语句使用起来比较灵活,而且有些情形能提高程序的效率。若完全删去 goto 语句,有些情形反而会使程序过于复杂,增加一些不必要的计算量。

/*goto 可以调到指定位置处执行新的程序,经常用来从多重循环内跳出来。

如下程序所示:

*/

#include<stdio.h>

#include<stdlib.h>

#include<memory.h>

int main()

{

    int i,j

    int a[3][3]={1,2,3,4,5,6,7,8,9}

    for(i=0i<3i++){

       for(j=0j<3j++){

           if(a[i][j] == 6)

           {

               goto Find

           }

       }

    }

    Find:

    printf("%d %d\n",i,j)

    getchar()

    return 0

}

欢迎采纳,如有不明白的,可以追问^_^

^_^

^_^

用一个标识符表示程序中的某一行,用标号名加冒号组成,如

main()

{

a:printf("asdf")/*a就是这一行的标号*/

}