十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
你对For Each的使用没有明确
钟楼ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!
你这里的意思是指,,i属于a数组,所以,i会是2,也会是4,也会是6,也会是8,也会是10,也会是12.。。。如果 再用a(i)去 索引数组中的数据肯定会超出索引范围
你这个改,把
sum += a(i)
改成:
sum += i
就可以了
在VB里,"平均分"(pingjunfen), 这是数组的调用方法,当然会报错了
这样改吧:
Dim xingming As String
Dim yuwen As Short
Dim shuxue As Short
Dim yingyu As Short
Dim zonghe As Short
Dim pingjunfen As Short
xingming = InputBox("输入姓名", "输入名字吧")
yuwen = InputBox("输入语文成绩", vbOKOnly)
shuxue = InputBox("输入数学成绩", vbOKOnly)
yingyu = InputBox("输入英语成绩", vbOKOnly)
zonghe = yuwen + shuxue + yingyu
pingjunfen = zonghe / 3
MsgBox("平均分:" pingjunfen, [vbOKOnly])
你的数组引用n在哪里更改的呢?
更改之前要判断一下是否超了界,
if nubound(music) then n=ubound(music)'如果走出范围,取最大范围
还有
Dim n As Integer = 100直接定义维数,还是建议用动态数组
很可能是你的Vb程序中有Option Base语句。
vb.net 的数组基数都是从0开始的,并且不支持 Option Base 语句。
i、j两个变量在for循环结束后数值都是6,
所以你的a(i,j)=a(6,6),但是你定义是Dim a%(5, 5),所以才会提醒“索引超出了数组界限”的。
没看明白你的TextBox1.text是来显示什么的?
如果用来显示a(5,5)的直接写TextBox1.Text = a(5, 5)就可以了呀
测试结果如图所示。现象与你说明的情况是一样的。
原因分析:你所声明的数组a(4,1)实际上是a(0 to 4, 0 to 1)。在截图下方的自动窗口栏可以看到,当程序运行完For循环后,x的值已经变为5,所以a(x,0)即为a(5,0),该变量与你声明的a(4,1)也就是a(0 to 4, 0 to 1)比较,发现下标已经超限,也就是程序报出的错误:索引超出了数组界限。
结束:a(x, 0) = Nothing : a(x, 1) = Nothing,不太理解该语句的主要目的,如果是为了释放内存,那么应该直接a=Nothing。
欢迎交流如有需要,请留下QQ欢迎交流。