2009-08-13 4 views
0

Was ist die maximale Anzahl von Ausführungen in einer While-Schleife in VB.net, die es erlaubt? Das heißt, es wird nach einer Variablen gesucht, die einem Wert entspricht, aber dieser Wert kommt nie? Wie oft wird der Code ausgeführt, bevor er beendet wird? Gibt es eine Möglichkeit, die maximale Anzahl von Ausführungen festzulegen, ohne sie programmgesteuert zu beenden?Was ist die maximale Anzahl von Ausführungen in einer While-Schleife in VB.net, die es erlaubt?

Danke für die Hilfe.

+2

Sie könnten versuchen und sehen ... :) –

+0

Hat das in C# einmal getan. War nicht hübsch. Crashed mah comp. – Cyclone

+0

@Cyclone: ​​C# ist sappin 'mah computah! – Powerlord

Antwort

9

Die While-Schleife in VB.Net hat keine inhärente Begrenzung der Anzahl der Iterationen. Es wird genau so oft ausgeführt, wie es in Ihrem Code steht.

Zum Beispiel wird die folgende Schleife immer nicht

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

Es sei denn, Ihr Computer explodiert oder ein BSOD erscheint :) Sorry, konnte nicht widerstehen. –

+1

s/Ausführungen/Iterationen/ –

1

verlassen Wenn es eine Grenze waren, können wir müssen nicht um die Endlosschleife Sorge ;-)

+0

haha, schön gesagt. Obwohl ein Fehler auch nicht nett ist. – Dykam

2

Die Situation, die Sie diskutieren ist eine endlose Schleife. Es heißt, weil es nichts gibt, was die Ausführung der Schleife stoppt.

Sie müssten einen Schleifenzähler einprogrammieren oder den Typ der Schleife ändern, damit er früh beendet wird.

2

Es wird nicht ohne Grund eine Endlosschleife genannt.

Sie könnten tun:

Dim backupExit as Integer 

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

Gibt es dafür eine Einstellung? Ich habe eine Menge While-Loops und ich möchte das nicht jedem einzelnen hinzufügen ... – Cyclone

+0

Nein. Wieder heißt es nicht eine Endlosschleife für Funsies! –

2

Wenn Sie eine bestimmte Anzahl von Malen Schleife wollen, bis ein Ereignis die übliche Lösung auftritt, ist der Test für den Zustand und die Schleifenzählung in der while-Test zu kombinieren.

while (not done) and loops < 1000 
    loops = loops + 1 
    If() then done=true 
end while 
Verwandte Themen