2009-08-13 1 views
0

Какое максимальное количество исполнений в цикле while в VB.net это позволит? Значит, он проверяет, чтобы переменная равнялась некоторому значению, но это значение никогда не приходит? Сколько раз он будет выполнять код перед его выходом? Есть ли способ установить максимальное количество исполнений, не прерывая его программным путем?Какое максимальное количество исполнений в цикле while в VB.net это позволит?

Спасибо за помощь.

+2

Вы можете попробовать и посмотреть ... :) –

+0

Сделал это в C# один раз. Не красиво. Crashed mah comp. – Cyclone

+0

@ Циклон: C# sappin 'mah computah! – Powerlord

ответ

9

Цикл While в VB.Net не имеет неотъемлемого ограничения количества итераций. Он будет выполняться ровно столько раз, сколько ваш код говорит, что он должен.

Например, следующий цикл не будет когда-либо выйти из

While True 
    Console.WriteLine("hello") 
End While 
+2

Если ваш компьютер не взрывается или не появляется BSOD :) Извините, не смог удержаться. –

+1

s/исполнения/итерации/ –

1

Если бы не было предела, мы не должны беспокоиться о бесконечном цикле ;-)

+0

ха-ха, приятно сказано. Хотя ошибка тоже не очень хорошая. – Dykam

2

Ситуация вы обсуждаете это бесконечный цикл. Он называется так потому, что нет ничего, что остановит цикл от выполнения.

Вам нужно будет закодировать в цикле счетчика или переключить тип цикла, чтобы он вышел раньше.

2

Это не называется бесконечным циклом без причины.

Вы можете сделать:

Dim backupExit as Integer 

While Not myExitCondition AndAlso backupExit < someValue 
    ''//do stuff 
    backupExit += 1 
End While 
+0

Есть ли настройка для этого? У меня есть тонна циклов, и я не хочу добавлять это к каждому lol ... – Cyclone

+0

Нет. Опять же, это не называется бесконечным циклом для funsies! –

2

Если вы хотите, чтобы цикл определенного числа раз, пока не произойдет какое-то событие, обычное решением является совместить тест для состояния и подсчета петель в тесте в то время.

while (not done) and loops < 1000 
    loops = loops + 1 
    If() then done=true 
end while 
Смежные вопросы