为了账号安全,请及时绑定邮箱和手机立即绑定

'指数数组的边界之外。'

'指数数组的边界之外。'

C#
MYYA 2021-07-20 16:08:57
我有一个 3X3 数组byte[,] grid = new byte[3,3];,在我的程序中访问它可以正常工作,但是当我尝试通过循环查找横向行的总数时,我收到错误“索引超出数组范围。”。我知道这意味着什么,但我不明白为什么我会得到它。        total = 0;        for (byte xy = 2; xy >= 0; xy-=1) {            total += grid[xy, xy]; //this is were i get the error        }
查看完整描述

1 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

遍历循环:

第一个:xy = 2

第二:xy = 1

第三:xy = 0

第四:xy = 255

0 - 1 = 255 因为您的循环变量 xy 是一个字节,它不能表示负值,只能表示 0 到 255。

要修复您的循环,您可以将 xy 更改为int. 这样它可以表示一个负值,允许条件 xy >= 0 返回 false 并退出循环。

for (int xy = 2; xy >= 0; xy-=1) {
    total += grid[xy, xy];
    }


查看完整回答
反对 回复 2021-07-31
  • 1 回答
  • 0 关注
  • 166 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信