马上加入TC
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
还记的一次用GOTO,被一个从事C语言程序员十几年的老师发现了。单独叫出去训了一顿,当然这老师一直对我很。他哪句话还一直深深的影响着我。“老板或老大,如果看到你用GOTO会直接让你打包走人!”
至今也没明白为什么很多人不赞同用GOTO。反正不用就行了。
TC也有保留GOTO语法。也有很多同学在用。
自我感觉。有几种情况喜欢用到它。其中一种就是代码逻辑不是很清晰。在很多循环逻辑中。跳不出来。直接用一个<GOTO。代码去哪儿。>直接多好呀。如一个三层循环。
GOTO使用。跳出所有循环。
size1=10000,size2=10000,size3=100000
for(i=0;i<size1;i++)
一层:
if(条件==true)
else
endif
for(j=0;j<size2;ji++)
二层:
if(条件==true)
else
endif
for(k=0;k<size3;k++)
if(条件==true)
//跳出最内层
GOTO 二层:
//跳出第二层:
GOTO 一层:
//全部跳出
GOTO 我出来了:
else
endif
endfor
endfor
endfor
我出来了:
条件使用。跳出所有循环。
size1=10000,size2=10000,size3=100000
for(i=0;i<size1;i++)
if(条件==true)
else
endif
for(j=0;j<size2;ji++)
if(条件==true)
else
endif
for(k=0;k<size3;k++)
if(条件==true)
//跳出最内层
size3=-1
//跳出第二层:
size3=-1, size2=-1
//全部跳出
size3=-1,size2=-1,size1=-1
else
endif
endfor
endfor
endfor
上面两个例子其实都能达到同样的效果。。感觉也一样复杂度呀。
但一个大工程。你只是做一个模块。用GOTO有可能去别人哪里。但然TC的GOTO是出不了内部函数。用条件来处理。再怎么错。也只是这个循环内部出错。
所以不管你们用不用。反正我是不用。
|