Fussgesteuerte Schleifen mit do - while

Eine fußgesteuerte Schleife prüft am Ende der Anweisung eine Bedingung auf true. Ist die Bedingung false, wird die Ausführung beendet.

Bei dieser Art der Schleife wird die Anweisung auf alle Fälle mindestens 1-mal ausgeführt.

 

Syntax:

do
{
   Anweisung
} while (Bedingung);

 

1. Beispiel:

Dieses Programm berechnet den Mittelwert von eingegebenen Messwerten.
Wird als Messwert 0 eingegeben, soll die Abfrage beendet und der Mittelwert ausgegeben werden.

namespace mittelwert_von_messwerten
{
    class Program
    {
        //Mittelwert von Messwerten berechnen - mit 0 wird die Eingabe abgebrochen
        static void Main(string[] args)
        {
            float messwert, summe = 0, anz = 0, mw;

            do
            {
                Console.WriteLine("Messwert");
                messwert = Convert.ToSingle(Console.ReadLine());

                summe = summe + messwert;

                anz++;

            } while (messwert != 0);

            mw = summe / (anz - 1);

            Console.WriteLine("Der Mittelwert ist {0:f2}",mw);

            Console.ReadLine();
        }
    }
}

 

2. Beispiel:

Unsere Winkelberechnungstabelle soll nach jeder Berechnung eine Abfrage stellen, ob die Berechnung nochmals ausgeführt werden soll.

namespace fuss_schleife
{
    class Program
    {
        static void Main(string[] args)
        {
            float start, end, schritt;

            float i;

            char antwort;

            do  //führe aus...
            {
            Console.WriteLine("Geben Sie den Startwinkel ein!");
            start = Convert.ToSingle(Console.ReadLine());

            Console.WriteLine("Geben Sie den Endwinkel ein!");
            end = Convert.ToSingle(Console.ReadLine());

            Console.WriteLine("Geben Sie die Schrittweite ein!");
            schritt = Convert.ToSingle(Console.ReadLine());

            Console.WriteLine("\nWinkel\tsin\tcos\ttan");

            Console.WriteLine("_______________________________");

            for (i = start; i <= end; i = i + schritt)
            {
                Console.WriteLine("{0}\t{1:f4}\t{2:f4}\t{3:f4}\n", i, Math.Sin(i * Math.PI / 180), Math.Cos(i * Math.PI / 180), Math.Tan(i * Math.PI / 180));

            }
            Console.WriteLine("\nNoch eine Tabelle? [j/n]");
            antwort = Convert.ToChar(Console.ReadLine());

            Console.ReadLine();

            }while ((antwort=='j')||(antwort=='J'));  //...solange antwort = false
        }
    }
}