28 Stimmen

Do While-Schleife in C#?

Wie schreibe ich eine Do While-Schleife in C#?

(Bearbeiten: Ich bin ein VB.NET-Programmierer, der versucht, den Schritt zu C# zu machen, so habe ich Erfahrung mit .NET / VB-Syntax. Danke!)

52voto

Jon Skeet Punkte 1325502

Die allgemeine Form ist:

do
{
   // Body
} while (condition);

condition ist ein Ausdruck des Typs bool .

Ich persönlich schreibe selten do/while-Schleifen - for , foreach und gerade while Schleifen sind meiner Erfahrung nach viel häufiger. Letzteres ist der Fall:

while (condition)
{
    // body
}

Der Unterschied zwischen while y do...while ist, dass im ersten Fall der Körper niemals ausgeführt werden, wenn die Bedingung zu Beginn falsch ist - während sie im letzteren Fall immer einmal ausgeführt wird, bevor die Bedingung überhaupt ausgewertet wird.

8voto

dferraro Punkte 6095

Da Sie erwähnten, dass Sie von VB.NET kommen, würde ich dringend empfehlen, sich die dieser Link um die Vergleiche zu zeigen. Sie können auch verwenden ce wensite zur Konvertierung von VB nach C# und umgekehrt - so können Sie mit Ihrem vorhandenen VB-Code spielen und sehen, wie er in C# aussieht, einschließlich Schleifen und alles andere unter dem Son

Um die Frage nach der Schleife zu beantworten, sollten Sie einfach etwas wie folgt tun:

while(condition)
{
   DoSomething();
}

Sie können auch - währenddessen - so vorgehen:

do
{
   Something();
}
while(condition);

Hier ist ein weiterer Code-Übersetzer Ich habe mit Erfolg verwendet, und eine weitere großartige Website zum Vergleich C#->VB . Viel Glück!

7voto

BlackICE Punkte 8598
//remember, do loop will always execute at least once, a while loop may not execute at all
//because the condition is at the top
do
{
  //statements to be repeated
} while (condition);

2voto

Edurne Pascual Punkte 5372

Es ist erstaunlich, dass noch niemand das klassische Beispiel für das do..while-Konstrukt erwähnt hat. Do..while ist das Mittel der Wahl, wenn man einen Code ausführen, etwas überprüfen oder verifizieren will (normalerweise abhängig davon, was während der Ausführung dieses Codes passiert ist), und wenn einem das Ergebnis nicht gefällt, wieder von vorne anfangen. Das ist genau das, was man braucht, wenn man eine Benutzereingabe haben möchte, die bestimmten Bedingungen entspricht:

bool CheckInput(string input) { ... }
...
string input;
...
do {
  input=Console.ReadLine();
} while(!CheckInput(input));

Das ist eine recht allgemeine Form: Wenn die Bedingung einfach genug ist, ist es üblich, sie direkt in das Schleifenkonstrukt (innerhalb der Klammern nach dem "while"-Schlüsselwort) einzufügen, anstatt eine Methode zur Berechnung der Bedingung zu verwenden.

Die Schlüsselkonzepte bei dieser Verwendung sind, dass Sie die Benutzereingabe mindestens einmal anfordern müssen (im besten Fall wird der Benutzer es beim ersten Versuch richtig machen) und dass die Bedingung nicht wirklich viel Sinn macht, bis der Körper mindestens einmal ausgeführt wurde. Jeder dieser Punkte ist ein guter Hinweis darauf, dass do..while das richtige Werkzeug für diese Aufgabe ist, aber beide zusammen sind fast eine Garantie.

1voto

John Feminella Punkte 292907

Hier ist ein einfaches Beispiel, das einige Zahlen ausgibt:

int i = 0;

do {
  Console.WriteLine(++i);
} while (i < 10);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X