TC官方合作论坛
标题:
丢掉一些GOTO
[打印本页]
作者:
B哥
时间:
2014-7-8 10:43
标题:
丢掉一些GOTO
还记的一次用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是出不了内部函数。用条件来处理。再怎么错。也只是这个循环内部出错。
所以不管你们用不用。反正我是不用。
作者:
tempbb1234
时间:
2014-7-8 12:21
用GOTO,由其是新手,会让程序乱飞,一下跳上,一下跳下,一下跳左,一下跳右,有时直接让人看得头晕。
清晰性,可读性变差,不要说别人了,就是自己过段时间来看,也不一定看懂。
作者:
b44412545
时间:
2014-7-11 12:50
GOTO 现在一般都是用作花指令了.....防反编汇的
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1