Использование цикла for и инструкции if в VB

#vba #if-statement #for-loop

#vba #if-инструкция #for-цикл

Вопрос:

Я пытаюсь написать цикл for, который идет от 1 до 125 и выполняет те же действия на основе каждого числа *, если это не 1 из 8 чисел (24, 48, 63, 75, 104, 110, 114, 119) в этом случае это ничего не дает. Кроме написания инструкции if после цикла for, которая гласит:

 If g <> 24 and g <> 48 and... and g <> 119 Then 
   Do stuff
End If
  

Есть ли более чистый способ заставить код делать то, что я хочу?

Ответ №1:

Чтобы было понятнее, что происходит, вы могли бы использовать вариант Select:

 Select Case g
    Case 24, 48, 63, 75, 104, 110, 114, 119
        ' do nothing
    Case Else
        ' do stuff
End Select
  

Ответ №2:

A Select Case — хороший способ сделать это

   Dim i As Integer

  For i = 1 To 125
    Select Case i
      Case 24, 48, 63, 75, 104, 110, 114, 119
        'skip
      Case Else
        'your code
    End Select
  Next
  

Ответ №3:

Вы можете создать список (массив) с исключениями и проверить в цикле for, содержится ли индекс в массиве, а затем пропустить операцию для этого индекса.

псевдокод (c #)

 list = new List(){24, 48, 63, 75};

for(int=index; index<=125; index  )
{   
  if(list.Contains(index))
    continue;

  // Do some operation
}