Laden...

Warum while (true)?

Erstellt von K.I.T.T. vor 16 Jahren Letzter Beitrag vor 16 Jahren 2.895 Views
K
K.I.T.T. Themenstarter:in
42 Beiträge seit 2005
vor 16 Jahren
Warum while (true)?

Moin,
ich hab aus meinem Buch einen Code abgeschrieben und habe ja auch alles verstanden, ausser einer Sache, es ging da grad um die while-Schleife. Also hier der Codeabschnitt:


while (true) 
			{ 
				Console.Write("Guthaben eingeben: "); 
				string sGuthaben = Console.ReadLine(); 
				dGuthaben = Convert.ToDecimal(sGuthaben); 
				if (dGuthaben >= 0) 
				{ 
					break; 
				} 

				Console.WriteLine("Nö, keine negativen Werte..."); 
				Console.WriteLine("NOCHMAL!!!"); 
				Console.WriteLine(); 
			} 

Was das bedeutet ist ja klar: Wenn das Guthaben größer oder gleich Null ist, dann wird die while-Schleife mit break verlassen, ansonsten Fehlermeldung und Guthaben nochmal eingeben.

Meine Frage ist jetzt, warum muss ich while (true) eingeben? Das verstehe ich nicht.

Gruß K.I.T.T.

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo K.I.T.T.,

bitte von alleine CodeTags verwenden. [Hinweis] Wie poste ich richtig? Punkt 6.

Da die Schleifen-Bedingung in der Mitte des Schleifenrumpfs geprüft werden soll, setzt man while (true) ein. Die while-Schleife wird dadurch immer durchlaufen bis sie mit break verlassen wird.

herbivore

409 Beiträge seit 2006
vor 16 Jahren

Ja,

while (true)

ist eine Endlosschleife.

H
704 Beiträge seit 2003
vor 16 Jahren

Ist übrigens ziemlich unschön ... aber nur so nebenbei g

Lieber eine rekursive Main() Methode ...

[last.fm](http://www.last.fm/user/hauptmanAlpha/)
49.485 Beiträge seit 2005
vor 16 Jahren

Hallo hauptmann,

ich widerspreche dir ungerne, muss es aber trotzdem tun. Hier Rekursion zu verwenden wäre völlig verfehlt. Für eine rekursive Main() Methode kann ich mir ohnehin nur in sehr weniger Fällen als sinnvolle Option vorstellen.

Ich finde middle-checked-loops außerdem oft sehr elegant. Schade ist eigentlich nur, dass es dafür kein besonderes Schlüsselwort gibt.

herbivore

31 Beiträge seit 2007
vor 16 Jahren

Original von K.I.T.T.

Meine Frage ist jetzt, warum muss ich while (true) eingeben? Das verstehe ich nicht.

Gruß K.I.T.T.

Eine while - Schleife testet immer auf wahr oder falsch (true oder false).
Solange der Wert in dem Schleifenkopf true ist, wird der gesamte Inhalt des Blockes wiederholt. Das endet, wenn man den Wert auf false setzt - oder wie in diesem Fall - die Schleife mit break verlässt.

Führe einen Krieg gegen Dummheit und Ignoranz - du hast ihn verloren, bevor er beginnt.