三个VB的问题 求解
麻烦大家看看我错在哪里谢谢第一题privatesubform_click()a=1fori=1to3selectcaseicase1,3a=a+1case2,4a=a+2...
麻烦大家看看我错在哪里 谢谢
第一题
private sub form_click()
a=1
for i=1 to 3
select case i
case 1,3
a=a+1
case 2,4
a=a+2
end select
next i
msgbox a
end sub
我是这么想的 首先i取值1 则a=a+1得2 再是i加步长1为2 则a=a+2得4 接下来i再加步长1等于3 a=a+1得5
这时候已经是正确答案5了 但是我却觉得最后这个i的值为3 还在i=1to3的范围里 还应该加步长1得4执行一次操作啊 最后应该是7啊 难道最后一次不用执行吗
第二题
定义了二维数组A(2to5,5),则该数组的元素个数为多少
这个麻烦大家告诉我一下怎么做
第三题
已知程序段
s=0
for i=1to10 step2
s=s+1
i=i*2
next l
当循环结束后,变量i的值为22 变量s的值为3
变量s的值我没有问题 但是这个i我算下来是20啊
我是这么想的 i取1经过程序得2 2加步长得4进入程序得8 8加步长得10进入程序得20 此时i超过10的上限 应该就是结果了啊 为什么正确答案却是22?
小弟周六考 还有不少问题 分数还得留些后面提问 只能献上15分 谢谢大家的耐心解答 展开
第一题
private sub form_click()
a=1
for i=1 to 3
select case i
case 1,3
a=a+1
case 2,4
a=a+2
end select
next i
msgbox a
end sub
我是这么想的 首先i取值1 则a=a+1得2 再是i加步长1为2 则a=a+2得4 接下来i再加步长1等于3 a=a+1得5
这时候已经是正确答案5了 但是我却觉得最后这个i的值为3 还在i=1to3的范围里 还应该加步长1得4执行一次操作啊 最后应该是7啊 难道最后一次不用执行吗
第二题
定义了二维数组A(2to5,5),则该数组的元素个数为多少
这个麻烦大家告诉我一下怎么做
第三题
已知程序段
s=0
for i=1to10 step2
s=s+1
i=i*2
next l
当循环结束后,变量i的值为22 变量s的值为3
变量s的值我没有问题 但是这个i我算下来是20啊
我是这么想的 i取1经过程序得2 2加步长得4进入程序得8 8加步长得10进入程序得20 此时i超过10的上限 应该就是结果了啊 为什么正确答案却是22?
小弟周六考 还有不少问题 分数还得留些后面提问 只能献上15分 谢谢大家的耐心解答 展开
展开全部
第一个题,当I等于四的时候,已经超出了循环中最大值3了,所以就不会再次执行循环体中的内容,但结束后,I值经过了NEXT后再加上步长1,这时I变成4了,已经超过了TO 3的这个最大值,所以不会再继续循环下去,这个题和后面的第三题有些相似。
第二个题,它是一个二维数组,第一维中有2-5共四个数组,第二维则是从0开始到5结束,也就是共6个数组,最终元素个数为4*6=24个。它的结构如下:
A(2,0),A(2,1),A(2,2),A(2,3),A(2,4),A(2,5)
A(3,0),A(3,1),A(3,2),A(3,3),A(3,4),A(3,5)
A(4,0),A(4,1),A(4,2),A(4,3),A(4,4),A(4,5)
A(5,0),A(5,1),A(5,2),A(5,3),A(5,4),A(5,5)
第三题,第一次循环时,I是1,到了I=I*2时,I值为2,NEXT是下一个,然后通过步长2,得到I值是4,这时开始第二次循环,到了I=I*2时,I值为8,经过NEXT后再加上步长2,I值为10,还满足循环条件,所以进行第三次循环,到了I=I*2时,I值变为20,然后通过NEXT回到FOR,加上步长2,得到I值系于22,此时,不满足循环条件,程序退出循环,所以,最终得到的I值是22。
第二个题,它是一个二维数组,第一维中有2-5共四个数组,第二维则是从0开始到5结束,也就是共6个数组,最终元素个数为4*6=24个。它的结构如下:
A(2,0),A(2,1),A(2,2),A(2,3),A(2,4),A(2,5)
A(3,0),A(3,1),A(3,2),A(3,3),A(3,4),A(3,5)
A(4,0),A(4,1),A(4,2),A(4,3),A(4,4),A(4,5)
A(5,0),A(5,1),A(5,2),A(5,3),A(5,4),A(5,5)
第三题,第一次循环时,I是1,到了I=I*2时,I值为2,NEXT是下一个,然后通过步长2,得到I值是4,这时开始第二次循环,到了I=I*2时,I值为8,经过NEXT后再加上步长2,I值为10,还满足循环条件,所以进行第三次循环,到了I=I*2时,I值变为20,然后通过NEXT回到FOR,加上步长2,得到I值系于22,此时,不满足循环条件,程序退出循环,所以,最终得到的I值是22。
展开全部
但是我却觉得最后这个i的值为3 还在i=1to3的范围里 还应该加步长1得4执行一次操作啊 最后应该是7啊 难道最后一次不用执行吗
——i会增加1但循环内容不再执行!
A(2to5,5)2 to 5 为4,5为6或5 见Option Base 1,相乘就好了。24或20
是22,与(1)一样的。i会增加2但循环内容不再执行!
——i会增加1但循环内容不再执行!
A(2to5,5)2 to 5 为4,5为6或5 见Option Base 1,相乘就好了。24或20
是22,与(1)一样的。i会增加2但循环内容不再执行!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一题
循环次数 I值 A值 A的执行方式
初始 0 1 无
第一次 1 2 A=A+1
第二次 2 4 A=A+2
第三次 3 5 A=A+1
到第三次的时候已经循环过第三次了,第四次I已经过了循环I=1 TO 3了
第二题:
二维数组的个数计算方法是=行*列
行是2到5 也就是2,3,4,5 四行
列是5
那二维数组的个数就是4*5=20
第三题
循环次数 S值 循环I值 执行i=i*2之后I值 NEXT之后I值
S=S+1 I=I*2 I=I+2
初始 0 0
第一次 1=0+1 1 2=1*2 4=2+2
第二次 2=1+1 4 8=4*2 10=8+2
第三次 3=2+1 10 8=10*2 22=10+2
第四次 I 值已经超过10 退出循环
你分析错误的主要原因是NEXT之后 I值还会因为STEP 2 而加上2,得22
你可以试试 for i=1 to 20 FOR循环结束之后I值得21了。
循环次数 I值 A值 A的执行方式
初始 0 1 无
第一次 1 2 A=A+1
第二次 2 4 A=A+2
第三次 3 5 A=A+1
到第三次的时候已经循环过第三次了,第四次I已经过了循环I=1 TO 3了
第二题:
二维数组的个数计算方法是=行*列
行是2到5 也就是2,3,4,5 四行
列是5
那二维数组的个数就是4*5=20
第三题
循环次数 S值 循环I值 执行i=i*2之后I值 NEXT之后I值
S=S+1 I=I*2 I=I+2
初始 0 0
第一次 1=0+1 1 2=1*2 4=2+2
第二次 2=1+1 4 8=4*2 10=8+2
第三次 3=2+1 10 8=10*2 22=10+2
第四次 I 值已经超过10 退出循环
你分析错误的主要原因是NEXT之后 I值还会因为STEP 2 而加上2,得22
你可以试试 for i=1 to 20 FOR循环结束之后I值得21了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一题;首先i取值1 则a=a+1得2 再是i加步长1为2 则a=a+2得4 接下来i再加步长1等于3 a=a+1得5
这时候已经是正确答案5了 ,最后这个i的值为3 ,前面定义i= 1 to 3,所以到此就结束了
第二题:二维数组A(2 to 5,5),前面2 to5,是一维下标取值范围为2到5,后面的5是二维下标为1到5,用数学的树状法可以知道A(2to5,5)有4*5=20个
第三题:我也弄不明白
这时候已经是正确答案5了 ,最后这个i的值为3 ,前面定义i= 1 to 3,所以到此就结束了
第二题:二维数组A(2 to 5,5),前面2 to5,是一维下标取值范围为2到5,后面的5是二维下标为1到5,用数学的树状法可以知道A(2to5,5)有4*5=20个
第三题:我也弄不明白
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询