Cadence Skill 论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4356|回复: 2

求助:请问怎么跳出for循环?

[复制链接]
发表于 2015-8-11 14:45:07 | 显示全部楼层 |阅读模式
执行for循环的时候,如果发现某个参数异常,需要跳出这个for循环,请问应该如何设置呢?
发表于 2015-8-11 16:52:29 | 显示全部楼层
在for中使用return参考:
http://www.allegro-skill.com/thread-10-1-1.html
 楼主| 发表于 2015-8-12 10:37:41 | 显示全部楼层
vivienluo 发表于 2015-8-11 16:52
在for中使用return参考:
http://www.allegro-skill.com/thread-10-1-1.html

我的prog()是嵌套在for()循环内的。
我需要两种跳出:一个是prog()内读取文件最后一行后跳出,继续下一文件(for()循环切换文件);一个是总体内容超过边框后跳出,这个是要跳出for循环的。
现在的做法是先预读所有文件,确定总体内容是否会超出边框,再执行读取文件的操作。
罗老师能详解下go函数么?
顺便贴上部分源码供各位交流学习
  1. for( i 1 page
  2.         if(p = infile(sprintf(nil "d:/placement/page%d.txt" i)) then ;打开page*.txt,不能打开则跳过
  3.                 l = 0
  4.                 maxP = i ;获取能打开的最大页数
  5.                 prog(()
  6.                         for(k 1 99
  7.                                 for( j 1 nY ;每列nY行
  8.                                         if(fscanf(p "%s" s) then ;读取文件每行的第一个字符串
  9.                                                 gets(s p) ;读取当前行剩余字符串,用于切换下一行
  10.                                                 l = l + 1 ;计数
  11.                                         else
  12.                                                 return(l) ;字符串为空则跳出
  13.                                         );end if
  14.                                 );end for
  15.                         );end for
  16.                 );end prog
  17.                 l = (l - 1)/nY + 1 ;获取列数
  18.                 maxL = (max maxL l) ;获取最大列数
  19.         );end if
  20. );end for
  21. maxX = oX + (i - 1)/nP*(maxL*dX + P2P)
  22. maxY = oY + nP*(nY*dY + P2P)
  23. if((maxX > 17000 || maxY > 12000) then
  24.         axlUIConfirm("Out Of Range, Please Check" 'warn)
  25.         run = nil
  26. );end if
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|网站地图|Cadence Skill 论坛 ( 蜀ICP备13024417号 )

GMT+8, 2024-5-2 14:24 , Processed in 0.129520 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表