c语言goto语句用法
C语言的goto命令是什么?
C语言的goto命令是什么?
C语言中的goto语句表示的是跳转到指定的地方,但一般都不使用,因为会造成混乱,而且用goto语句实现的功能,C语言可以用continue和break这两个辅助循环语句来实现,但是当有很多嵌套循环的时候,想要在个时刻终止所有的循环,这时候用goto语句就很快捷了,因为break跳出循环的只是当前的循环。
letsgotothezoo改为否定句?
以动词let开头的句子是祈使句,通常情况下祈使句的否定形式是在动词原形前加dont开头,而以let开头的祈使句有所不同,肯定句是let sb do sth.否定句是let sb not do sth.所以题中句子Lets go to the zoo.(咱们去动物园吧。)的否定句是Lets not go to the zoo.
goto语句和continue 语句的区别?
continue语句
continue语句终止最近的循环中的当前迭代并立即开始下一次迭代,类似于break语句,continue语句只能出现在for、while和do while循环的内部,或者嵌套在此类循环里的语句以及块的内部。和break语句相似的是,出现在嵌套循环中的continue语句也仅作用于离他最近的循环。和break语句不同的是,只有当switch语句嵌套在迭代语句内部时,才能在switch里使用continue。continue语句中断当前的迭代,但是仍然继续执行循环。对于while或者do while语句来说,继续判断条件的值,而对于for循环而言,则执行序列中的下一次迭代。
goto语句
goto语句的作用主要是从goto语句无条件跳转到同一函数的另一条语句,需要注意的是goto语句和要转向的标签语句必须位于同一个函数之内,但在一般写代码中,不经常使用goto语句,因为它使得程序既难立即又难修改。
写程序为什么不主张用goto语句?
MISRA (The Motor Industry Software Reliability Association),中文名称为汽车工业软件可靠性联会,是英国的一个跨国汽车工业协会,其成员包括了大部分欧美汽车生产商。其核心使命是为汽车工业提供服务和协助,帮助厂方开发安全的、高可靠性的嵌入式软件。MISRA C则是由MISRA提出的针对嵌入式C语言开发标准,目的是提高嵌入式系统的安全性、可读性和可移植性。 MISRA C明确规定不能使用goto语句,如下:
规则14.4(强制) :goto 语句不能使用。
规则14.5(强制):continue 不能使用。
规则14.6(强制): 函数应在函数结束有一个出口。
规则14.7(强制):witch、while do 、while for 语句体应是一个混合语句。
规则14.10(强制): 所有if else if 结构都应该由 else 结束。
我想,原因主要为:
1、二十几年前,当计算机编程尚处于起步阶段时,程序流程是由“GOTO”语句来控制。该类语句允许程序员对当前代码行断行,而直接进入另一个不同的代码段,在程序比较简单是用goto语句是比较灵活,但是当程序比较复杂时很容易造成程序流程的混乱。
2、破坏了清晰的程序结构,使程序的可读性变差,甚至成为不可维护的面条代码。
3、经常带来错误或隐患,比如它可能跳过了某些对象的构造、变量的初始化、重要的计算等语句。
4、GOTO语句使程序的静态结构和动态结构不一致,从而使程序难以理解,难以查错。
如果确实不可避免需要使用,下列关于使用goto语句的原则可以供参考:1) 使用goto语句只能goto到同一函数内,而不能从一个函数里goto到另外一个函数里。 2) 使用goto语句在同一函数内进行goto时,goto的起点应是函数内一段小功能的结束处,goto的目的label处应是函数内另外一段小功能的开始处。 3) 不能从一段复杂的执行状态中的位置goto到另外一个位置,比如,从多重嵌套的循环判断中跳出去就是不允许的。 4)应该避免像两个方向跳转。这样最容易导致面条代码。