VB do while循环问题

代码:PrivateSubCommand1_Click()DimaAsInteger,bAsIntegerDoPrint"*"b=0a=a+1DoPrint"#"b=b+... 代码:
Private Sub Command1_Click()
Dim a As Integer, b As Integer
Do
Print "*"
b = 0
a = a + 1
Do
Print "#"
b = b + 1
Loop While b <= 1
Loop While a <= 2
End Sub
为什么b要设定初值,而a不用呢?
另外,是不是a循环一次,b就要循环两次?如果再加一层的话,又是怎样算呢?求解
展开
 我来答
tianqing20wen

2011-05-31 · TA获得超过2.4万个赞
知道大有可为答主
回答量:8226
采纳率:88%
帮助的人:5064万
展开全部
你的do loop循环等同于下面这个for循环
for a = 0 to 2
for b = 0 to 1
next
next
循环就是为了重复执行 而你的do内循环 执行的条件是以B的值小于等于1为循环条件
如果不在内循环开始前重置循环条件的话 不管外循环的次数是多少 这个内循环只会执行一次
那就失去的内嵌循环的大部分意义了 但只要不违背语法你想如何执行代码都是你决定的 关键还得看写这段代码想实现的目的
ycsxm
2011-05-31 · TA获得超过3.3万个赞
知道大有可为答主
回答量:1.4万
采纳率:0%
帮助的人:7888万
展开全部
a可能也要的,丢了, 加到一起 b=0:a=0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gaphy2010
推荐于2016-07-04 · TA获得超过5848个赞
知道小有建树答主
回答量:786
采纳率:0%
帮助的人:821万
展开全部
a, b 声明为 Integer 后初值就是 0
b = 0 的意义不是设定,而是重置

首先 外循环
Do
b = 0
a = a + 1
...
Loop While a <= 2
由于 a 是 Integer 型,初值为 0,Loop While a <= 2,说明 a = 0, 1, 2 外循环循环三次后结束
再看 内循环
Do
b = b + 1
Loop While b <= 1
由于在第一次外循环中 b=0,第一次内循环 Loop While b <= 1,说明 b = 0, 1 内循环循环两次后结束,很显然,a 循环一次,b 就要循环两次。
但若 b 不重置为 0 的话,在第二次外循环开始,b >= 1 内循环 Loop While b <= 1 就只会循环一次就结束。即 在第二次外循环开始, a 循环一次,b 就循环一次。
追问
我又在原基础上加了一层:
Dim a As Integer, b As Integer, c As Integer
Do
Print "*"
b = 0
a = a + 1
Do
Print "#"
c = 0
b = b + 1
Do
Print "&"
c = c + 1
Loop While c < 1
Loop While b <= 1
Loop While a <= 2
结果是
* # & # & * # & # & * # & # &
正确吗?a循环1次,b循环两次。b循环一次,c循环一次。a循环了三次。c该设定吗?放b循环体对吗
追答
你的分析和结果都正确。算是理解了。c 放b循环体是对的,如果 b循环一次,c循环一次 c 不设定也可以,但 如果 b循环一次,c循环 >1  次,c 必须在 b 循环的开始置 0,即 c= 0。
不过要注意活用,具体问题具体分析,如果要输出 * # & # & * # & # & * # & # & 以上代码可精简为:
Dim a As Integer, b As Integer
Do
Print "*"
b = 0
a = a + 1
Do
Print "#"
Print "&"
b = b + 1
Loop While b <= 1
Loop While a <= 2
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式