高级程式语言 Goto

Goto(高级程式语言)其中标号需要申请,在对应的过程的申请的位置写label <标号>;其中,标号必须为byte型整数 。
【高级程式语言 Goto】在该段落内还需要有<标号>:表示将要转向的方向 。
基本介绍中文名:Goto
外文名:Goto
套用举例C语言Sample:(2005MSDN上的例子)#include <stdio.h>int main(){int i, j;for ( i = 0; i < 10; i++ ){printf( "Outer loop executing. i = %d\n", i );for ( j = 0; j < 3; j++ ){printf( " Inner loop executing. j = %d\n", j );if ( i == 5 )goto stop;}}/* This message does not print: */printf( "Loop exited. i = %d\n", i );stop: printf( "Jumped to stop. i = %d\n", i );//stop: 就是标籤return 0;}Pascal语言中的Goto语句goto <标号>;其中标号需要申请,在对应的过程的申请的位置写label <标号>;其中,标号必须为byte型整数 。在该段落内还需要有<标号>:表示将要转向的方向 。发展历程60年代中期以后,计算机硬体技术日益进步,计算的存贮容量、运算速度和可靠性明显提高,生产硬体的成本不断降低 。计算机价格的下跌为它的广泛套用创造了极好的条件 。在这种形势下,迫切要求计算机软体也能与之相适应 。因而,一些开发大型软体系统的要求提了出来 。然而软体技术的进步一直未能满足形势发展的需要,在大型软体的开发过程中出现了複杂程度高、研製周期长、正确性难以保证的三大难题 。遇到的问题找不到解决办法,致使问题堆积起来,形成了人们难以控制的局面,出现了所谓的“软体危机” 。为了克服这一危机,一方面需要对程式设计方法、程式的正确性和软体的可靠性等问题进行系列的研究;另一方面,也需要对软体的编制、测试、维护和管理的方法进行研究,从而产生了程式设计方法学 。各方看法有害1968年,E·W·代克斯特拉首先提出“GOTO语句是有害的”论点,向传统程式设计方法提出了挑战,从而引起了人们对程式设计方法讨论的普遍重视 。争论在60年代末和70年代初,关于GOTO语句的用法的争论比较激烈 。主张从高级程式语言中去掉GOTO语句的人认为,GOTO语句是对程式结构影响最大的一种有害的语句,他们的主要理由是:GOTO语句使程式的静态结构和动态结构不一致,从而使程式难以理解,难以查错 。去掉GOTO语句后,可直接从程式结构上反映程式运行的过程 。这样,不仅使程式结构清晰,便于理解,便于查错,而且也有利于程式的正确性证明 。持反对意见的人认为,GOTO语句使用起来比较灵活,而且有些情形能提高程式的效率 。若完全删去GOTO语句,有些情形反而会使程式过于複杂,增加一些不必要的计算量 。解决方法1974年,D·E·克努斯对于GOTO语句争论作了全面公正的评述,其基本观点是:不加限制地使用GOTO语句,特别是使用往回跳的GOTO语句,会使程式结构难于理解,在这种情形,应儘量避免使用GOTO语句 。但在另外一些情况下,为了提高程式的效率,同时又不至于破坏程式的良好结构,有控制地使用一些GOTO语句也是必要的 。用他的话来说就是:“在有些情形,我主张删掉GOTO语句;在另外一些情形,则主张引进GOTO语句 。”从此,使这场长达10年之久的争论得以平息 。后来,G·加科皮尼和C·波姆从理论上证明了:任何程式都可以用顺序、分支和重複结构表示出来 。这个结论表明,从高级程式语言中去掉GOTO语句并不影响高级程式语言的编程能力,而且编写的程式的结构更加清晰 。结果在C/C++等高级程式语言中保留了goto语句,但被建议不用或少用 。在一些更新的高级程式语言,如Java不提供goto语句,它虽然指定goto作为关键字,但不支持它的使 用,使程式简洁易读;儘管如此后来的c#还是支持goto语句的,goto语句一个好处就是可以保证程式存在唯一的出口,避免了过于庞大的if嵌套 。注意问题goto语句不能跨越变数的定义向后跳转://......goto end;int ix=10;end:ix=42;//会出现ix未定义的情形而向前跳过已经执行的变数定义语句是合法的 。因为向前跳回到一个变数定义之前,系统在撤销这个变数,然后重新创建它://..........begin:int sz=get_size();if(sz<=0) goto begin;执行goto语句时,首先撤销变数sz,然后程式的控制流程跳转到带begin:标号的语句继续执行,再次重新创建和初始化变数sz 。