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!)

1voto

Art W Punkte 2010
using System;

class MainClass
{
    public static void Main()
    {
        int i = 0;
        do
        {
            Console.WriteLine("Number is {0}", i);
            i++;
        } while (i < 100);
    }
}

Eine andere Methode wäre

using System;

class MainClass
{
    public static void Main()
    {
        int i = 0;
        while(i <100)
        {
            Console.WriteLine("Number is {0}", i);
            i++;
        }
    }
}

1voto

Firestar9114 Punkte 392

Die Antwort von Jon Skeet ist richtig und großartig, aber ich möchte ein Beispiel für diejenigen anführen, die damit nicht vertraut sind while y do-while in c#:

int i=0;
while(i<10)
{
    Console.WriteLine("Number is {0}", i);
    i++;
}

und:

int i=0;
do
{
    Console.WriteLine("Number is {0}", i);
    i++;
}while(i<10)

werden beide ausgegeben:

Number is 0
Number is 1
Number is 2
Number is 3
Number is 4
Number is 5
Number is 6
Number is 7
Number is 8
Number is 9

wie wir es erwarten würden. Es ist jedoch wichtig zu verstehen, dass die do-while-Schleife den Hauptteil unabhängig von der Prüfung immer das erste Mal ausführt. Das heißt, wenn wir den Startwert von i auf 100 ändern, werden wir sehr unterschiedliche Ausgaben sehen.

int i=100;
while(i<10)
{
    Console.WriteLine("Number is {0}", i);
    i++;
}

und:

int i=100;
do
{
    Console.WriteLine("Number is {0}", i);
    i++;
}while(i<10)

Jetzt erzeugt die while-Schleife tatsächlich keine Ausgabe:

aber die do-while-Schleife erzeugt dies:

Number is 100

obwohl er weit über 10 Jahre alt ist. Dies ist auf das einzigartige Verhalten einer do-while-Schleife zurückzuführen, die im Gegensatz zu einer normalen while-Schleife immer nur einmal ausgeführt wird.

0voto

Neben der Antwort von Anthony Pegram können Sie auch die while-Schleife verwenden, die die Bedingung prüft, BEVOR Sie in die Schleife einsteigen

while (someCriteria)
{
    if (someCondition)
    {
        someCriteria = false;
        // or you can use break;
    }
    if (ignoreJustThisIteration)
    {
        continue;
    }
}

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