太仓到上海虹桥机场:请教一道vb中for循环的习题

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 02:51:55
private sub command1_click()
a=0
for i=1 to 2
for j=1 to 4
if j mod 2<>0 then
a=a+1
end if
a=a+1
next j
next i
print a
end sub
程序运行后,单击命令按钮,输出结果是什么?
答案是12,是怎么得出来的,谢谢各位了!

进入i的第1次循环;
进入j的第1次循环;
此时:j mod 2 <> 0 ,则执行if语句中的a=a+1;运算前结果 a=0,运算后:a=1
执行if语句后的a=a+1;运算前结果 a=1,运算后:a=2

进入j的第2次循环;
此时:j mod 2 = 0, if语句中a=a+1不运行;
执行if语句后的a=a+1;运算前结果 a=2,运算后:a=3

进入j的第3次循环;
此时:j mod 2 <> 0 ,则执行if语句中的a=a+1;运算前结果 a=3,运算后:a=4
执行if语句后的a=a+1;运算前结果 a=4,运算后:a=5

进入j的第4次循环;
此时:j mod 2 = 0, if语句中a=a+1不运行;
执行if语句后的a=a+1;运算前结果 a=5,运算后:a=6

进入i的第2次循环;
进入j的第1次循环;
此时:j mod 2 <> 0 ,则执行if语句中的a=a+1;运算前结果 a=6,运算后:a=7
执行if语句后的a=a+1;运算前结果 a=7,运算后:a=8

进入j的第2次循环;
此时:j mod 2 = 0, if语句中a=a+1不运行;
执行if语句后的a=a+1;运算前结果 a=8,运算后:a=9

进入j的第3次循环;
此时:j mod 2 <> 0 ,则执行if语句中的a=a+1;运算前结果 a=9,运算后:a=10
执行if语句后的a=a+1;运算前结果 a=10,运算后:a=11

进入j的第4次循环;
此时:j mod 2 = 0, if语句中a=a+1不运行;
执行if语句后的a=a+1;运算前结果 a=11,运算后:a=12

最后的结果为:12

学过很久,不能比较专业地说出来了~
双循环~外面一圈是for i=1 to 2,next i
就是说:
for j=1 to 4
if j mod 2<>0 then
a=a+1
end if
a=a+1
next j
要计算两次
j=1时,j mod 2<>0
a=a+1=1
end if
a=a+1=1+1=2
j=2时,j mod 2=0
”if j mod 2<>0 then
a=a+1
end if”就没了
直接a=a+1=3
这样j循环完以后a=6
i=2再进行一次,a=12

i 等于 1 时,j 从1 到 4, 共循环4 次,其中当j mod 2 <> 0时,a=a+1,两次。i 等于2时,一样。所以共12次。答案是12。

我没有学过Vb我推算的结果:
j=1
a=2
j=2
a=3
j=3
a=5
j=4
a=6
i=2
a=12