Option Strict On
Option Explicit On
Module Module1
Sub Main()
Dim HowMany As Integer
Dim nameArray(HowMany) As String
Dim HourlyWageArray(HowMany) As Double
Dim HoursWorkedArray(HowMany) As Integer
Dim GrossPayArray(HowMany) As Double
Dim x As Integer = 0
Console.WriteLine("How many employees?")
HowMany = CInt(Console.ReadLine())
Do While x < HowMany
Console.WriteLine("Employee name: ")
nameArray(x) = CStr(Console.ReadLine())
Console.WriteLine("Hourly rate: ")
HourlyWageArray(x) = CDbl(Console.ReadLine())
Console.WriteLine("Hours worked: ")
HoursWorkedArray(x) = CInt(Console.ReadLine())
If HoursWorkedArray(x) <= 40 Then
GrossPayArray(x) = HourlyWageArray(x) * HoursWorkedArray(x)
ElseIf HoursWorkedArray(x) > 40 Then
GrossPayArray(x) = ((HoursWorkedArray(x) - 40) * (HourlyWageArray(x) * 1.5)) + (40 * HourlyWageArray(x))
End If
x = x + 1
Loop
Console.WriteLine("{0,12:c} {1,12} {2,12:c} {3,12:c}", nameArray, HourlyWageArray, HoursWorkedArray, GrossPayArray)
Console.ReadLine()
End Sub
End Module
在第17行,nameArray(x)= CStr的(到Console.ReadLine()),收到错误 “类型的未处理的异常 'System.IndexOutOfRangeException' 发生”为什么我的数组超出范围?
无论什么值I输入对于HowMany,尝试输入第二个员工姓名时发生此错误。
想想这个: 'y = 2; z = x + y; x = 1;'为什么不行? – 2014-10-05 03:42:54
因为x还没有被声明......但是我不能把x = 0放到循环里面吗? – 2014-10-05 03:44:10
是的,所以你在这里遇到了同样的事情。 'HowMany'默认为0,然后在分配值之前使用它。 – 2014-10-05 03:47:18