iCAx开思网

标题: macro的疑问 [打印本页]

作者: homage79    时间: 2003-9-16 20:42
标题: macro的疑问
while cond=(xxx<yyy)
var mod var=xxx integer_value=(eval(xxx+1))
  
if cond=(eval(DB_EXISTS("MARKER_"//xxx)))
var mod var=yyy integer_value=(eval(yyy+1))
continue
end
  
var mod var=zzz integer_value=(eval(zzz+1))
这一段循环是如何实现xxx自增的,为什么用了一个应用yyy=yyy+1呢
作者: homage79    时间: 2003-9-16 20:42
高手见笑了
呵呵
作者: homage79    时间: 2003-9-16 20:43
请做过macro的高手指点一二
作者: simulation    时间: 2003-9-17 23:20
关键在于continue,每次条件满足时,它都从循环的开始处执行
本例中,就是从while下面那句开始执行,于是XXX自动增1
  
continue并不受IF控制,只受循环条件(WHILE/END或for/end)控制。
  
至于YYY+1,由于是用它来作判断的,当XXX+1后,YYY自然也应该+1,因为这是初始条件,此时真正的循环还没有开始,下面还有语句,接着创建part...........
作者: genus    时间: 2003-9-19 20:24
xxx的自加是由“var mod var=xxx integer_value=(eval(xxx+1))  
  
”实现的,和yyy没关系,yyy+1和其他的循环体有关应该是!
  
欢迎来指导,加1分鼓励. BY Jeriflee
作者: Jeriflee    时间: 2003-9-19 21:40
genus wrote:
xxx的自加是由“var mod var=xxx integer_value=(eval(xxx+1))   
  
  ”实现的,和yyy没关系,yyy+1和其他的循环体有关应该是!

  
没错,xxx+1就在这行语句实现的。
就象一句c++语言:
if(x++)
是先判断,再加1。
作者: homage79    时间: 2003-9-25 08:24
明白了
谢谢
呵呵




欢迎光临 iCAx开思网 (https://www.icax.net/) Powered by Discuz! X3.3