a:for(...){...;...;goto a;...;}若不可以,那么连续嵌套若干个循环有没有办法;

热心网友

a:for(。。。){。。。;。。。;goto a;。。。;}label_B:这样的程序结构是可以运行的,不会产生死循环,根据循环条件能够自动退出循环体,并顺序执行label_B。我的建议是尽量少用无条件转移语句,这对程序的修改和维护都有好处,比如可将程序改为如下式样,看上去要顺眼多了。for(。。。){。。。;if(原goto以前的语句执行条件){。。。;。。。;};endif}对于多重循环的嵌套结构,一般来说也是可以执行无条件跳转的,不过一定要保证不要直接跳入循环体内部,像下面的例子那样,没有任何意义。因为你不知道跳入后,该循环体循环控制变量的值,有人可能会说,我只想使用其中几条语句,那么我想问他一句,当正常执行该循环体时,又该如何处理呢?goto a;。。。;for(。。。){。。。;。。。;a:。。。;。。。;}无条件跳入以后,循环控制变量是未知的,也就是说,无法预料a:标号以后的语句执行次数。有人会说,“我只一次性使用这几条语句,完成任务后再跳转出来。”这就出问题啦:用当正常执行循环体时,该循环体只会执行一个不完整的循环,并会跳转到原转出语句所指定的标号处顺序执行。再说,直接跳入循环体的企图在程序编译时有可能得到警告的。