本帖最后由 兄弟工程师05 于 2014-6-4 18:11 编辑 点击返回总目录本小节说明:主要讲解目前按键中支持的循环命令功能与各种应用例子,给不懂的同学进行科普,看到这里,你问下自己,按键循环语句的命令与应用你是否都知道?
一、
While……
Wend循环语句。
(提示:While命令不怎么需要用到,常用循环命令推荐是Do与For,请想学的同学一字不漏的看完,谢谢!)例子1:无限循环与跳出
- i = 0 '开头对一个变量 i 进行赋值 0
- While i = 0 '当 i = 0 时,这个条件成立,进入循环
- '这里可以写循环中执行的代码
- '当你要离开循环的时候,把i重新赋值非0的时候,以上条件就不成立,就离开了。
- TracePrint "循环中,i=" & i
- i = 1
- Wend
- TracePrint "离开循环,i=" & i
复制代码例子2:设定循环次数后跳出
- i = 10
- While i > 0 '条件成立,进入循环
- TracePrint "循环中,i=" & i
- i = i - 1'执行这里,i-1 ,当执行第十次循环到时,i=0 了,那么条件就不成立,将离开
- Wend
- TracePrint "离开循环,i=" & i
复制代码补充:以上是常规应用方式,当然还有同学直接写 While 1,While 1=1,While 1 < 2,While True,While False,等等等条件来执行无限循环,他们的原理方式都是一样的,当条件成立,则执行循环,且条件写死不可改变,除非用Goto命令,否则无法跳出。(这里提示,不推荐使用Goto命令,
为什么?)
解释:这里的1,或1=1,或True的值,都是真实存在,成立的,所以循环条件成立。当然怎么写代码习惯在个人,但希望不懂的同学要明白原理,不要照本宣科的复制来使用。
二、
For……
Next循环语句。
例子1:固定循环次数后跳出
- For 10 '固定循环10次跳出
- TracePrint "循环中……"
- Next
- TracePrint "离开循环"
复制代码例子2:常规应用
- i = 0
- For 10
- TracePrint "循环中,i=" & i
- i = i + 1
- Next
- TracePrint "离开循环,i=" & i
复制代码 以上方式经常这么用的同学,说明您不了解For的其他应用。- For i = 0 To 9 '默认每次循环结束 i 都+1,那么10次后等于9,第11次等于10,大于9,离开循环
- TracePrint "循环中,i=" & i
- Next
- TracePrint "离开循环,i=" & i
复制代码- For i = 0 To 19 Step 2 '每次循环结束 i 都+2,那么10次后等于18,第11次等于20,大于19,离开循环
- TracePrint "循环中,i=" & i
- Next
- TracePrint "离开循环,i=" & i
复制代码- For i = 9 To 0 Step -1 '每次循环结束 i 都-1,那么10次后等于0,第11次等于-1,小于0,离开循环
- TracePrint "循环中,i=" & i
- Next
- TracePrint "离开循环,i=" & i
复制代码例子3:条件判断中途跳出循环
- For i = 0 To 9 '默认每次循环结束 i 都+1,那么10次后等于9,第11次等于10,大于9,离开循环
- TracePrint "循环中,i=" & i
- If i > 5 Then '当 i=6 时大于5,则进入If条件,执行赋值为9,那么再一次循环时i等于10,大于9,离开循环
- i = 9
- End If
- Next
- TracePrint "离开循环,i=" & i
复制代码 以上方式经常这么用的同学,说明您不了解For的其他应用。Exit For命令应用。
支持Exit For 命令退出循环,在For循环中,只要执行到该命令,无条件直接跳出当前For循环,如外面还有一层For循环则继续正常执行循环。- For i = 0 To 9 '默认每次循环结束 i 都+1,那么10次后等于9,第11次等于10,大于9,离开循环
- TracePrint "循环中,i=" & i
- If i > 5 Then '当 i=6 时大于5,则进入If条件,执行Exit For,那么将直接离开当前循环,i的值为6不变。
- Exit For
- End If
- Next
- TracePrint "离开循环,i=" & i
复制代码- For i_x = 0 To 9
- TracePrint "循环1中,i_x=" & i_x
- For i_y = 10 To 19
- TracePrint "循环2中,i_y=" & i_y
- If i_y > 15 Then '当 i_y=16 时大于15,则进入If条件,执行Exit For,那么将直接离开当前循环,i_y的值为16不变。
- Exit For '这里离开,只是跳出循环2,循环1则正常继续执行。
- End If
- Next
- TracePrint "离开循环2,i_y=" & i_y
- Next
- TracePrint "离开循环1,i_x=" & i_x
复制代码三、
Do……
Loop循环语句。
例子1:无限循环
- Do
- TracePrint "循环中……"
- Delay 1000 '无限循环中时大家要注意,较长的循环等待中,一定要加入适当的延时,给予CPU响应时间来处理,否则很有可能导致效率下降,执行停顿甚至卡死未响应。
- Loop
复制代码例子2:条件成立则循环
先判断条件,是否进入循环,后执行命令。
- i = 0
- Do While i = 0 '判断条件成立,进入循环
- TracePrint "循环中,i=" & i
- i = 1 '修改变量值,改变条件,则离开循环
- Loop
- TracePrint "离开循环,i=" & i
复制代码先执行命令,后判断条件,是否返回循环。
- i = 10
- Do
- TracePrint "循环中,i=" & i
- i = i - 1
- Loop While i > 0 '判断条件成立,返回循环
- TracePrint "离开循环,i=" & i
复制代码 好了!到这里,有条件成立执行循环的,自然也有一个条件成立离开循环的命令。先判断条件,是否跳过循环。
- i = 10
- Do Until i = 0 '判断条件成立,离开循环
- TracePrint "循环中,i=" & i
- i = i - 1 '修改变量值,改变条件,则离开循环
- Loop
- TracePrint "离开循环,i=" & i
复制代码先执行命令,后判断条件,是否跳出循环。
- i = 10
- Do
- TracePrint "循环中,i=" & i
- i = i - 1
- Loop Until i = 0
- TracePrint "离开循环,i=" & i
复制代码最后!同样要说明支持
Exit Do命令应用。
支持Exit Do 命令退出循环,在Do循环中,只要执行到该命令,无条件直接跳出当前Do循环,如外面还有一层Do循环则继续正常执行循环。最后例子就不写了,参照上面
Exit For命令例子,相信全程看到这里的同学已经明白怎么应用了。
总结:以上循环命令,常用的还是Do与For这两种,至于组合应用方式还有N种,学会融会贯通。好了,大致用法就是这样。记住,代码是死的,思路是活的,怎么灵活应用取决于您个人。最后!看帖要回帖啊!亲们!不想写了一大堆小例子就这么沉下去了……点击返回总目录