您如何对此进行编码,以便将第一列和第二列相加?
Dim intSales(,) As Integer = {{100000, 150000}, _
{90000, 120000}, _
{75000, 210000}, _
{88000, 50000}, _
{125000, 220000}, _
{63000, 80000}}
For intColumn As Integer = 0 To intSales.GetUpperBound(1)
For intRow As Integer = 0 To intSales.GetUpperBound(0)
' what do I put here?
Next intRow
Next intColumn
这有意义吗?如有必要,我很乐意澄清。
答案 0 :(得分:0)
绘制你的价值观并考虑它然后再回来一些示例代码,如果你仍然需要帮助。为了让你开始我会说第一个数组索引将是你的“行”。第二个数组索引将是该行中的“列”。因此,您可以使用类似intSales[1][1]
的内容访问120000(第二行,第二列)(请记住,数组索引基于零)。
答案 1 :(得分:0)
Dim s0 As Integer = 0
Dim s1 As Integer = 0
For i As Integer = 0 To intSales.GetLength(0) - 1
s0 += intSales(i, 0)
s1 += intSales(i, 1)
Next
答案 2 :(得分:0)
通过创建两个嵌套的for
循环,您已经走在正确的轨道上。您将需要为外部数组的每个循环遍历内部数组。
我认为你缺少的主要事情是你需要在for
循环之外创建一个临时变量来保存总和值。例如,我将sumTotal
声明为Integer
:
Dim intSales(,) As Integer = {{100000, 150000}, _
{90000, 120000}, _
{75000, 210000}, _
{88000, 50000}, _
{125000, 220000}, _
{63000, 80000}}
' Declare a temporary variable to hold the sum as you loop
Dim sumTotal As Integer = 0
For intColumn As Integer = 0 To intSales.GetUpperBound(1)
For intRow As Integer = 0 To intSales.GetUpperBound(0)
' Add the value at this specific point in the array
' to the existing value of the sumTotal variable
sumTotal += intSales(intRow, intColumn)
Next intRow
Next intColumn
请注意,我在这里使用了特殊的“加 - 等于”(+=
)运算符。您可能还没有了解到这一点,但它等同于以下代码,只是更容易阅读:
sumTotal = sumTotal + intSales(intRow, intColumn)
运行该代码会在sumTotal
变量中放置值1,371,000,我认为这是正确的。 ; - )
有人建议您可能希望为数组的每一列获取单独的结果。在这种情况下,您需要声明两个临时变量,每列一个。然后,您将要遍历第一列的行中的每个元素,将如上所示的值总计为第一个临时变量。要获得第二列的结果,您只需循环遍历该列行中的每个元素,就像对第一列一样对值进行求和。
这只是一个主题的变体 - 一旦你理解了如何循环遍历数组,并将值汇总成一个临时变量,你就有足够的信息来轻松解决这个问题。
我要添加的唯一内容是纯粹的风格:VB.NET的编码指南通常建议反对为您的变量名前缀类型标识符。在这种情况下,您使用int
表示变量的类型为Integer
。
但事实是,当您将鼠标悬停在变量上时,Visual Studio已经在工具提示中提供了这些信息,而VB.NET的编译器足够聪明,如果您尝试分配值为1,则会产生错误键入不同的,不兼容的类型的值。将类型信息添加到变量的名称实际上并没有给你任何额外的信息,它只会使名称变得混乱,使事情变得更难阅读。
这是在早期的,不兼容的Visual Basic版本(早在1998年)推荐的做法,但它已被改变以跟上语言的现代演变。如果你愿意的话,你当然可以自由地忽略它,因为这是纯粹的风格建议,不会影响你的程序如何运行,但我只是想在别人离开之前我会提出建议你这是一个讨厌的评论。