前言
C++是一种代码效率高,可移植性优,执行效率强的语言,但是有时总会有一些特殊的用法,在特殊的地方用起来比较顺手,但一旦滥用,就会使程序的档次降低(比如可读性降低,时间复杂度,出错时的检查等),这一期,我们就来盘点一下那些在写大型程序中最好不要滥用的C++语法吧!(注:不是不能用,而是在普通的情况下没必要多此一举)
No.1——goto跳转
具体语法
goto语法是设置一个标签,以标识符的形式,写在一个语句的前面,例如:
flag:cout<<"这里用到了一个标签,名叫flag";
然后当程序执行到一定的阶段时,想返回这个语句,继续按顺序执行,就写:
goto flag;
不能滥用的原因
goto语句违背了结构化程序设计的初衷,通俗一点来说就是“满程序乱跳,搞不清跳到哪了”,goto的跳转过于轻便(是贬义,指没有限制条件,有些随意,还容易报错),用2个及以上的goto会打破程序的可读性。因此D.E.Knuth说“不加限制地使⽤goto语句,特别是使⽤往回跳的goto语句,会使程序的结构难于理解,这种情形应该尽量避免使⽤goto语句;另外,为了提⾼程序的效率,同时⼜不破坏程序的良好结构,有控制地使⽤⼀些goto语句是有必要的”总而言之,当你并没有达到专业水平时,你不要想着在程序里来个“锦上添花”的一笔,其实多半是弄巧成拙的。
补充
goto语句在多重循环跳出的情况是可以用的。
例如:
#include<iostream>//调用输入输出流头文件 using namespace std;//使用标准名字空间 int main(){//主函数开始 for(int i=0;i<10;i++){//多重循环 for(int j=0;j<10;j++){ for(int k=0;k<10;k++){ goto s;//跳转到s } } } s:return 0;//主函数结束,标记为s }
但是,再次强调,你是小白就不要用,这是