2013-12-03 4 views
0
Sub InsertionSort(ByRef intArray() As Integer) 
    Dim intIndex, intPreviousIndex, intTempItem As Integer 

    For intIndex = 1 To intArray.Length - 1 
     intTempItem = intArray(intIndex) 
     intPreviousIndex = intIndex - 1 

     Do While intPreviousIndex > 0 
     And intArray(intPreviousIndex) > intTempItem 
      intArray(intPreviousIndex + 1) = intArray(intPreviousIndex) 
      intPreviousIndex = intPreviousIndex - 1 
     Loop 

     If intArray(intPreviousIndex) > intTempItem Then 
      intArray(intPreviousIndex + 1) = intArray(intPreviousIndex) 
      intArray(intPreviousIndex) = intTempItem 
     End If 
    Next intIndex 
End Sub  

Почему я получаю сообщение об ошибке Где «И»? Ошибка:BubbleSort Application for vb.net неизвестная ошибка

Ошибка 1 Ошибка синтаксиса. H: \ Visual Studio 2012 \ Projects \ BubbleSort \ BubbleSort \ Form1.vb 48 13 BubbleSort

Кто-нибудь знает почему?

ответ

3

Поскольку неявное продолжение линии работает ПОСЛЕ And, не раньше него. Вы можете либо сдвинуть And на одну строку, либо добавить явное продолжение линии (подчеркивание _). Так как это:

Do While intPreviousIndex > 0 And 
intArray(intPreviousIndex) > intTempItem 

Или это:

Do While intPreviousIndex > 0 _ 
And intArray(intPreviousIndex) > intTempItem 

Должно работать. Официальные ссылки:

Смежные вопросы