请教FOR指令的意思 点击:1071 | 回复:7



yang36

    
  • 精华:0帖
  • 求助:14帖
  • 帖子:22帖 | 435回
  • 年度积分:25
  • 历史总积分:4258
  • 注册:2012年9月13日
发表于:2013-09-14 14:01:33
楼主

这个循环程序FOR指令中的INIT中的数是什么意思
VW0中的值101是怎么来的
是不是可以这样认为,VW0从0次开始循环,循环到设定值100,就刚好是101次,然后FOR和NEXT指令间的程序则是从FOR指令中的INIT的设定值开始循环的,这样的话FOR里面的vw0最终的值101减INIT设定值2就刚好等于FOR和INIT之间的程序99次,不知道这样理解可否?望师傅们解答

 




yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10210回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2013-09-14 14:12:48
1楼

INIT代表初始值。


VW0中101是因为你的For循环的终止值为100,那么101才会停止For循环。


VW0从2开始循环,到100时最后一次循环,到101时循环条件不满足,结束循环。


yang36

  • 精华:0帖
  • 求助:14帖
  • 帖子:22帖 | 435回
  • 年度积分:25
  • 历史总积分:4258
  • 注册:2012年9月13日
发表于:2013-09-14 14:13:18
2楼

这次改了下INIT设定值5和FINAL设定值150,现在状态表里的vw0的值则是151,VW100的值是146,按照我刚才理解的意思是VW0从0次循环到150刚好151,VW100则从5开始循环,那么VW0总值151减5就是146,到底是不是这意思啊?求大师们真心解答下

yang36

  • 精华:0帖
  • 求助:14帖
  • 帖子:22帖 | 435回
  • 年度积分:25
  • 历史总积分:4258
  • 注册:2012年9月13日
发表于:2013-09-14 14:18:50
3楼

回复内容:

对: yuanle  INIT代表初始值。VW0中101是因为你的For循环... 内容的回复!


 那么我的FOR循环的终止值(也就是设定值的意思吗)100,那么VW0101的值是怎么加上去的呢

yang36

  • 精华:0帖
  • 求助:14帖
  • 帖子:22帖 | 435回
  • 年度积分:25
  • 历史总积分:4258
  • 注册:2012年9月13日
发表于:2013-09-14 14:21:25
4楼

回复内容:

对: yuanle  INIT代表初始值。VW0中101是因为你的For循环... 内容的回复!


 那么我的FOR循环的终止值(也就是设定值的意思吗)100,那么VW0101的值是怎么加上去的呢?,而且VW100中的99又怎么来的呢?能否详细点?不要说的太理论了,我水平有限,说的太理论了难以理解

okyouandme

  • 精华:0帖
  • 求助:6帖
  • 帖子:12帖 | 70回
  • 年度积分:0
  • 历史总积分:203
  • 注册:2010年12月04日
发表于:2013-09-14 16:20:33
5楼

这个指令系统手册上有说明的,INDX的初值是INIT,然后开始递增计数的,递增次数为INIT到FINAL之间的值(就是程序执行的次数),你这程序里VW100初值是0,每个循环递增1。这个程序总共运行了99次,所以VW100是99;VW0是2+99=101  这是我的理解

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10210回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2013-09-15 06:54:34
6楼

回复内容:

对: yang36 回复内容:对: yuanle  INIT代表初始值。V... 内容的回复!


初值=2,终值等于100  

那么VW0作为循环变量,在循环开始前,将初值赋予VW0

此时,VW0的值为2,然后与100比较,小于等于100

那么执行一次循环体内的程序。

循环完了,然后VW0=VW0+1

此时VW0的值等于3,然后与100比较,小于等于100,那么

那么执行一次循环体内的程序。

循环完了,然后VW0=VW0+1

。。。。。。

此时,VW0的值为100,与100比较,小于等于100,那么

那么执行一次循环体内的程序。

循环完了,然后VW0=VW0+1

此时VW0的值为101,与100比较,大于100,不执行循环体,

执行Next后面的程序,For指令运行结束。


VW100中的99是如何来的呢?因为Inc指令,使得每一次执行循环体VW100的值均加一。


那么执行了多少次循环体呢?循环次数=终值-初值+1

终值为100,初值为2,所以循环次数就是100-2+1,也就是99次。

所以VW100被累加了99次,VW100的值等于99


taoren_1

  • 精华:0帖
  • 求助:1帖
  • 帖子:30帖 | 427回
  • 年度积分:0
  • 历史总积分:1005
  • 注册:2007年9月28日
发表于:2013-09-24 19:19:25
7楼

   太深奥了,看不懂···


热门招聘
相关主题

官方公众号

智造工程师