智能进销存软件:革新现代库存管理
131
2023-11-07
【摘要】 本书摘自《Excel VBA跟卢子一起学 早做完 不加班 基础入门版》一书中第3章,第3节,韩小良著。
3.3.3 条件循环:Do…Loop. 语句
皮蛋:对象循环我算有些许明白了,待我慢慢消化它。来吧,我等着另外一个类型的循环。
无言:这个循环会比较“烦”,你要好好接招了。
认识了For…Next 和 For Each…Next 循环语句之后,来认识一下最后的循环语句了。
无言:为什么把它放到最后讲呢,因为它的多变性。
条件循环语句,该语句相比前两种语句较难理解,因为虽然只是 Do…Loop 这个语句,但 是它可分为2大类型4种用法,只有理解了这4种用法的区别才能更好地运用它。
无言:咱们先来看下2种类型的语法结构。
1. While 和 Until 的作用
Do…Loop 语句和IF…Then…Else 、For…Next,For Each…Next 语句一样都是必要的外壳, 书写时都必须保有这个外壳。在图3-19中有两个相同的黑色字,黑色字中的While 和 Until 这 两个参数为 Do…Loop 语句的特色,While 和 Until 参数分别用于指定条件的执行方式。
? 皮 蛋:条件的执行方式?
当在Do 后面紧接着While 时,说明condition 参数的表达式,必须要满足才能执行 Do循 环语句——即表达式的结果为 True, 则执行 Do的中间语句。如下示例:
Num=10
Do While Num<20
Cells(1,"A")=Num Loop
用户输入的随机数
'当Num 变量的数值小于20,结果返回 True, 就执行Do 中间语句
'上述表达式为True时,将Num 的值输入到A1 单元格,否则将不执行该操作
上面示例中Num 变量的值如果小于20,则满足While Num<20的判断,则执行Do 循环 中的中间语句,将Num 值写入A₁ 单元格。
当 Do 后面紧接着Until时,则表明了condition参数的表达式结果为 False才可执行 Do 的 中间语句,如下示例:
Num=10
Do Until Num<20 就执行内部语句 Cells(1,"A")=Num Loop
'用户输入的随机数
'当Num 变量的数值小于20,结果返回True, 不执行 Do 内部语句,若为 False
'上述表达式为True 时,将Num的值输入到A₁ 单元格,否则将不执行该操作
上面示例由于使用 Until 语法,当 Num 为10,比预定的20小,表达式结果范围了True,
由于Until的只能结果为 False 结果时,才会在A1 单元格输入Num 的值。
无言:While 和Until就像我们说的反义词,当使用While语法时,只有表达式结果为True的时 候才能执行内部语句, Until则刚好相反,只有当表达式结果为False时,才能执行内部语句。
? 皮蛋:有些风中凌乱的感觉。
无言:咱们还是结合语法例题来做吧。
2.Do…Loop 的第1种分类
前面说了Do…Loop分为2大类,4种用法,现在说下4种用法的关键点是什么。
Do…Loop分为2大类主要是因为如图3-19所示的2个语法结构的差别: While 和 Until, 2个执行条件方式的语句放置的位置不同。
第1类将While 和 Until放置在 Do关键字之后,接着是中间语句,最后才是Loop; 第 2 类则是把While 和 Until放置到Loop 关键词之后,而在 Do 和Loop外壳之间书写中间语句。
皮蛋:那它们最大的区别是什么呢,不会就这个吧?
无言: 肯定不是啦。
第1种分类是先判断表达式的结果,如果返回的布尔值满足While 或 Until语句的判断方 式则执行Do的中间语句:例如上面的示例中先比较Num 是否小于20,如果满足了Do语句判 断方式就执行将 Num 的值直接写入A1 单元格内。
第2种分类则是先将Num 变量写入单元格中,再判断这个Num 的值是否满足While 或 Until 语句的判断方式,满足后再继续执行 Do 循环,不满足时就退出循环。此时单元格中将出 现 Num 的值,而第1种则不会,只有当条件判断满足后才将Num 写入A1 单元格。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~