Do……Loop While a <= 0是怎样被执行的?

wweilinux 2004-08-21 03:51:22
在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
Dim a As Integer, s As Integer
a = 8
s = 1
Do
s = s + a
a = a-1
Loop While a <= 0
Print s; a
End Sub
程序运行后,单击命令按钮,则窗体上显示的内容是
A) 7 9 B) 34 0
C) 9 7 D)死循环

循环执行多少次?每次的s和a分别是什么值?
...全文
445 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
badboy168 2004-08-21
  • 打赏
  • 举报
回复
先执行,后判断,所以至少执行一次,判断时不任合条件后退出,所以执行1次,S=9,a=7
helanshan 2004-08-21
  • 打赏
  • 举报
回复
只执行一次循环...
tyg1982 2004-08-21
  • 打赏
  • 举报
回复
看清它是先循环后判断,还是先判断后循环
laviewpbt 2004-08-21
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
把上面的代码该为以下形式,则循环一次也没有执行,这可以从结果s=1,a=8中看出。

Dim a As Integer, s As Integer
a = 8
s = 1
While a <= 0
s = s + a
a = a - 1
Wend
Print s; a
End Sub
laviewpbt 2004-08-21
  • 打赏
  • 举报
回复
这里的a<=0意思是当a<=0时就执行循环,而do......loop while 结构使得循环至少执行一次,即它的运行情况是,先不管条件符合不符合,执行循环体一次,然后判断是否符合继续循环的条件,所有上面的循环体执行后s=9,a=7>0(不符合继续循环的条件,退出循环)。循环也就只执行了一次。
youyiwuyi 2004-08-21
  • 打赏
  • 举报
回复
在 Private Sub Command1_Click()行加一个断点,点击按钮后不断按 F8 看看就知道了!
wweilinux 2004-08-21
  • 打赏
  • 举报
回复
条件不是a<=0就执行循环体吗?为什么只执行一次?a应该从8一直变到0为止啊?
iiboy 2004-08-21
  • 打赏
  • 举报
回复
執行了一次,
因為該循環為當性循環,即不管條件如何,它總是會至少執行一次,
在你這段程序中,當執行
s = s + a
a = a-1
後,a的值是>0的,所以條件不滿足,退出循環,
所以此時s=1+8=9,a=a-1=7
haohaohappy 2004-08-21
  • 打赏
  • 举报
回复
c
1
s=9
a=7
victorycyz 2004-08-21
  • 打赏
  • 举报
回复
c

7,765

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧