循环的七种用法与利子与原理

/*循环的七种用法与原理 

(注意)循环都可以缩写的也是一般人常用的 简单的好就是如果表达示是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的数相加的和" & 问题3

Sub 清零 
    问题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
         
         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值