/*循环的七种用法与原理
(注意)循环都可以缩写的也是一般人常用的 简单的好就是如果表达示是true也就是真 的话就可以不用写true
比如:
For i=1 to 100 循环体 Next 等于 for 100 循环体 Next
While true 循环体 wend 等于 while 循环体 wend
Do while true 循环体 loop 等于 do while 循环体 loop 也行于 do 循环体 loop 这个是最常用的
Do 循环体 loop while true 等于 do 循环体 loop while
通过四个问题来实现循环的用法 我们只用一个程序来回答所有问题
第一:求1到100之间所有数值之和
第二:求1到100之间所有数值除以3 余数为0的数值之和
第三:求1到50之间所有数值之和
第四:根据一个条件,我们让其跳出循环 比如 i=100 时跳出循环
第一种 for [变量初值] to [结束值] step [步长] 步长就是循环一次初值+多少
[循环体]
Next
工作原理: 先给变量初值 也叫启始值 to 结束值 就是直得I=结束值循环结束
STEP 1 是步长 循环一次 I的值自增几 只要遇到exit for 立刻跳出循环
运行原理:先执行i=1 然后判断 I=值等于结束值不 如果不等级 执行循环里的内容
然后I的值+步长1在执行 判断 I=值等于结束值不 如果不等级 执行循环里的内容
然后I的值+步长1 直到I的值=结束值时跳出循环 执行NEXT 后面的语句
(注意)也可以用省略的方式来写 for 循环次数 循环体 next
For 3
循环体 //意思就是循环3次
Next*/
*/
For i = 1 To 100 step 1
问题1 = 问题1 + i
If i < 50 Then
问题3 = 问题3+i
End If
//用变量问题1来保存和的值 每循环一次I的值都会加1所以用得到的结果在+1赋给问题1 就能得到循环100次的值
If i mod 3=0 Then
问题2 = 问题2 + i
End If
If i = 100 Then
TracePrint "因为I当前等于100成立所以跳出循环了"
Exit For //这个是跳出for循环命令 因为我们需要前三个问题不能让他退出循环,这里就用100来演示效果
End if
Next
TracePrint "1到100的数相加的和是 " & 问题1
TracePrint "求得从1到100的数里能被3整除的数相加的和"&问题2
TracePrint "求得从1到50的数相加的和" & 问题3Sub 清零
问题1 =0
问题2 =0
问题3 =0
End Sub
Call 清零() //这个清零子程序很重要 因为上次问题123都有值了我们要重新计算一定要清空了他的值
/*第二种 for [变量初值] to [初值到多少的值]
就是把step省略 系统会默认步长是1效果跟第一个一模一样所以就不写例子了
因为步长你可以自己设置 可以设置成10也行 就是循环一次i+10的意思 所以步长是1的话可以不用第三种 do while [表达式] 循环体 loop
do while [表达式] 表达式成立就运行循环体 否则跳出循环 也可以 do while true 这就表示为真成立
[循环体]
loop运行原理:
先判断 表达式的值 是否为真 如果为真就执行循环体的内容
执行完循环体的内容 在继续判断 表达式是否为真 如果是真就一直执行
直到判断表达式的值为假真 就退出循环体 同样的 在循环里遇到 exit do
也是立刻跳出循环体 继续执行loop 后面的语句
*/
i = 1
do while i<=100
问题1 = 问题1 + i
If i < 50 Then
问题3 = 问题3+i
End If
//用变量问题1来保存和的值 每循环一次I的值都会加1所以用得到的结果在+1赋给问题1 就能得到循环100次的值
If i mod 3=0 Then
问题2 = 问题2 + i
End If
If i = 100 Then
TracePrint "因为I当前等于100成立所以跳出循环了"
Exit do //这个是跳出do 循环命令 因为我们需要前三个问题不能让他退出循环,这里就用100来演示效果
End If
i=i+1 //记住 这里一定要给出I的步长 不然就是死循环 重点,
loop
TracePrint "1到100的数相加的和是 " & 问题1
TracePrint "求得从1到100的数里能被3整除的数相加的和"&问题2
TracePrint "求得从1到50的数相加的和" & 问题3
/*
第四种 do 循环体 loop while [表达式]先执行一次循环体 然后在判断表达式是否为真成立 成立就运行循环体
Do
[循环体] 否则跳出循环 也可以 do 循环体 loop while true 这就表示为真成立
loop while [表达式]运行原理:
先执行次循环在判断 表达式的值 是否为真 如果为真就执行循环体的内容
在继续判断 表达式是否为真 如果是真就一直执行
直到判断表达式的值为假真 就退出循环体 同样的 在循环里遇到 exit do
也是立刻跳出循环体 继续执行loop 后面的语句
*/
Call 清零() //这个清零子程序很重要 因为上次问题123都有值了我们要重新计算一定要清空了他的值i = 1
do
问题1 = 问题1 + i
If i < 50 Then
问题3 = 问题3+i
End If
//用变量问题1来保存和的值 每循环一次I的值都会加1所以用得到的结果在+1赋给问题1 就能得到循环100次的值
If i mod 3=0 Then
问题2 = 问题2 + i
End If
If i = 100 Then
TracePrint "因为I当前等于100成立所以跳出循环了"
Exit do //这个是跳出do 循环命令 因为我们需要前三个问题不能让他退出循环,这里就用100来演示效果
End If
i=i+1 //记住 这里一定要给出I的步长 不然就是死循环 重点,
loop while i<=100
TracePrint "1到100的数相加的和是 " & 问题1
TracePrint "求得从1到100的数里能被3整除的数相加的和"&问题2
TracePrint "求得从1到50的数相加的和" & 问题3
Call 清零()
/*
第五种 do until [表达式] 循环体 loop
(注意)第五种跟第三种正好相反 第三是是条件成立执行第五是条件不成立执行
do until [表达式] 表达式不成立就运行循环体 否则跳出循环 也可以 do until false 这就表示为假不成立
[循环体]
loop运行原理:
先判断 表达式的值 是否为假 如果为假就执行循环体的内容
执行完循环体的内容 在继续判断 表达式是否为假 如果是假就一直执行
直到判断表达式的值为真 就退出循环体 同样的 在循环里遇到 exit do
也是立刻跳出循环体 继续执行loop 后面的语句
*/
i = 1
do until i>100 //这里需要注意 因为是不成立 如果100=100 的话那么1就成立了问题1+100就不会被执行了
问题1 = 问题1 + i
If i < 50 Then
问题3 = 问题3+i
End If
//用变量问题1来保存和的值 每循环一次I的值都会加1所以用得到的结果在+1赋给问题1 就能得到循环100次的值
If i mod 3=0 Then
问题2 = 问题2 + i
End If
If i = 100 Then
TracePrint "因为I当前等于100成立所以跳出循环了"
Exit do //这个是跳出do 循环命令 因为我们需要前三个问题不能让他退出循环,这里就用100来演示效果
End If
i=i+1 //记住 这里一定要给出I的步长 不然就是死循环 重点,
loop
TracePrint "1到100的数相加的和是 " & 问题1
TracePrint "求得从1到100的数里能被3整除的数相加的和"&问题2
TracePrint "求得从1到50的数相加的和" & 问题3
/*
第六种 do 循环体 loop until [表达式]
(注意)第六种跟第四种正好相反 第四是是条件成立执行第六是条件不成立执行先执行一次循环体 然后在判断表达式是否为假不成立 不成立就运行循环体
Do
[循环体] 否则跳出循环 也可以 do 循环体 loop until false 这就表示为假不成立
loop until [表达式]运行原理:
先执行次循环在判断 表达式的值 是否为假 如果为假就执行循环体的内容
在继续判断 表达式是否为假 如果是假就一直执行
直到判断表达式的值为具 就退出循环体 同样的 在循环里遇到 exit do
也是立刻跳出循环体 继续执行loop 后面的语句
*/
Call 清零() //这个清零子程序很重要 因为上次问题123都有值了我们要重新计算一定要清空了他的值i = 1
do
问题1 = 问题1 + i
If i < 50 Then
问题3 = 问题3+i
End If
//用变量问题1来保存和的值 每循环一次I的值都会加1所以用得到的结果在+1赋给问题1 就能得到循环100次的值
If i mod 3=0 Then
问题2 = 问题2 + i
End If
If i = 100 Then
TracePrint "因为I当前等于100成立所以跳出循环了"
Exit do //这个是跳出do 循环命令 因为我们需要前三个问题不能让他退出循环,这里就用100来演示效果
End If
i=i+1 //记住 这里一定要给出I的步长 不然就是死循环 重点,
loop until i>100 //这里需要注意 因为是不成立 如果100=100 的话那么1就成立了问题1+100就不会被执行了
TracePrint "1到100的数相加的和是 " & 问题1
TracePrint "求得从1到100的数里能被3整除的数相加的和"&问题2
TracePrint "求得从1到50的数相加的和" & 问题3
/*
第七种 while 表达式 循环体 wend
先判断表达式是否为真 如果为真执行循环体
While [表达式]
[循环体] 否则跳出循环 也可以不代表达式 直接while 等同于 while true
wend运行原理:
先判断表达式 表达式的值 是否为真 如果为真就执行循环体的内容
在继续判断 表达式是否为真 如果是真就一直执行
直到判断表达式的值为假 就退出循环体
继续执行loop 后面的语句 while wend 没有强行退出的语句 所以只能自己让条件成立
才会退出循环体 比如 在循环体里 输出 ifcolor intx,inty,"FFFFFF",0 then
让表达式成立 下面的例子回答问题4的时候会用到这个技巧
*/
Call 清零() //这个清零子程序很重要 因为上次问题123都有值了我们要重新计算一定要清空了他的值i = 1
While i<=100
问题1 = 问题1 + i
If i < 50 Then
问题3 = 问题3+i
End If
//用变量问题1来保存和的值 每循环一次I的值都会加1所以用得到的结果在+1赋给问题1 就能得到循环100次的值
If i mod 3=0 Then
问题2 = 问题2 + i
End If
If i = 100 Then
i = 101
TracePrint "因为while wend没有退出循环语句 所以这里让I的值等于101在判断条件不成立就会退出循环"
End If
i=i+1 //记住 这里一定要给出I的步长 不然就是死循环 重点,
wend //
TracePrint "1到100的数相加的和是 " & 问题1
TracePrint "求得从1到100的数里能被3整除的数相加的和"&问题2
TracePrint "求得从1到50的数相加的和" & 问题3
循环的七种用法与利子与原理
最新推荐文章于 2024-12-06 16:15:29 发布