Я использую этот код для поиска массива строк для спичек с входом, однако я получаю следующее сообщение об ошибке:Ошибки при использовании цикла для поиска строки массив
An unhandled exception of type 'System.IndexOutOfRangeException' occurred in task on page 110.exe
Вот код:
Public Class Form1
Dim letters() As String = {"a", "a", "e", "g", "g", "g", "h", "g", "e", "k", "o", "k", "K", "g"}
Dim search As String
Dim numMatches As Integer = 0
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
search = TextBox1.Text
numMatches = 0
For i = 0 To 14
If search = letters(i) Then
numMatches = numMatches + 1
End If
Next
TextBox2.Text = numMatches
End Sub
End Class
Используйте отладчик, чтобы увидеть, что значение I, когда вы получите сообщение об ошибке. Готов поспорить, вы обнаружите, что это значение равно 14, и это выходит за пределы вашего массива. –
Это тривиальная вещь для отладки. Установите точку останова и удерживайте кнопку мыши над буквами – Plutonix
Помните, что с массивами на основе 0 массив длиной n будет иметь максимальный индекс n-1. Таким образом, ваш цикл for должен быть от 0 до 13 или, еще лучше, 'letters.Length - 1'. Или просто используйте 'For Every' и забудьте об индексах, так как они вам не нужны. –