爱问知识人 爱问教育 医院库

这个程序结构可不可以运行

首页

这个程序结构可不可以运行

a:for(...)
{...;
...;
goto a;
...;
}

若不可以,那么连续嵌套若干个循环有没有办法;

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

    1***

    2005-11-14 12:05:10

类似问题

换一换
  • 数学 相关知识

  • 教育培训
  • 教育考试

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):