Die Do-While-Schleife – dCodinGames (2024)

Die dritte der grundlegenden zyklischen Flusskontrollstrukturen ist die do-while-Schleife. In diesem Artikel werde ich Ihnen von diesem Zyklus erzählen.

El ciclo do-while - dCodinGames (1)

Die do-while-Schleife wird auch als endbedingungsgesteuerte Schleife bezeichnet, da sie durch die Auswertung der Bedingung am Ende der Schleife gekennzeichnet ist. Diese Struktur ermöglichtErsteDer Schleifenkörper wird ausgeführt undnachDie Bedingung wird ausgewertet, um festzustellen, ob der Zyklus noch einmal wiederholt werden kann.

In seiner Form und seinen Betriebsregeln ähnelt es eher dem Zykluswährenddas mit dem zyklusfür, außer dass die Bedingung am Ende und nicht am Anfang der Schleife ausgewertet wird. In Abbildung 1 zeige ich Ihnen die allgemeine Form der Do-While-Struktur in drei verschiedenen Notationen: dem Flussdiagramm, dem Pseudocode und der Programmiersprache Java.

El ciclo do-while - dCodinGames (2)

Abbildung 1. Die zyklische Do-While-Struktur, dargestellt in drei Notationen.

AndereProgrammiersprachenSie können für diesen Zyklus unterschiedliche Namen verwenden. Zum Beispiel in der SprachePascalDiese Schleife heißt „repeat-until“ und im Gegensatz zu Javas do-while wird die Schleife so lange ausgeführt, bis die Bedingung wahr ist. (In Java, wie inC, endet, wenn die Bedingung falsch ist). Andererseits die SpracheBASICverwendet die DO-LOOP WHILE-Syntax.

Die do-while-Schleife funktioniert wie folgt:

  • Es beginnt mit dem Eintritt in den Schleifenkörper und der Ausführung der darin enthaltenen Anweisungen.
  • Der Zustand wird dann am Ende des Zyklus ausgewertet.
  • Wenn die Bedingung wahr ist, haben Sie die „Erlaubnis“, erneut in den Schleifenkörper einzutreten und deren Anweisungen auszuführen.
  • Und die Bedingung wird erneut ausgewertet, was, wenn sie wahr bleibt, es dem Programmablauf ermöglicht, erneut in den Schleifenkörper einzutreten und die darin enthaltenen Anweisungen auszuführen.
  • Wenn die Bedingung ausgewertet wird und „falsch“ ist, verlässt der Programmablauf die Schleife und Aktion2 wird nun ausgeführt, was alle Anweisungen (oder Befehlssätze) darstellt, die sich außerhalb der Schleife befinden und daher nicht wiederholt werden.

Dieser Vorgang kann anhand der in Abbildung 2 gezeigten Animation verdeutlicht werden.

El ciclo do-while - dCodinGames (3)

Abbildung 2. Funktionsweise der do-while-Schleife.

Die Do-While-Schleife im Detail.

Diese Flusskontrollstruktur besteht aus zwei Teilen:

  1. Der Hauptteil des Zyklus, in dem die Anweisungen platziert werden, die Sie wiederholen möchten. Es kann nur aus einer einfachen Anweisung bestehen, beispielsweise einer Zuweisung, einem Methodenaufruf oder sogar einer anderen Flusskontrollstruktur: if, while, switch oder for. Dieser Teil sollte mit dem Schlüsselwort do beginnen, gefolgt vom {}. In diesem Fall ist die Verwendung von geschweiften Klammern nicht optional, auch wenn der Schleifenkörper nur aus einer Anweisung besteht.
  2. Die Schleifenbedingung, die aus dem Schlüsselwort while, dem in Klammern eingeschlossenen Bedingungsausdruck und dem Symbol ; besteht. Dieses Satzzeichen ist sehr wichtig und ein wichtiger Unterschied zu seinem Gegenstück, der While-Schleife. In diesem Fall ist es zwingend erforderlich, den Zyklus mit zu beenden. da es praktisch das Ende der Kontrollstruktur ist und nicht, wie in der while-Schleife, der Anfang der Struktur.

In Abbildung 3 sehen Sie die Komponenten dieses Zyklus.

El ciclo do-while - dCodinGames (4)

Abbildung 3. Komponenten der do-while-Schleife in den drei gängigsten Notationen.

Beobachtungen zur Verwendung von Flussdiagrammen.

Flussdiagramme sind eines der am häufigsten verwendeten Werkzeuge zur Beschreibung von Algorithmen. Sie haben einige Vorteile, da es sich um eine grafische Darstellung handelt, da diese Darstellung für viele Studierende leichter lesbar ist. Obwohl sie immer noch verwendet werden, bevorzugen einige von uns Pseudocode, da seine Struktur eher einer Programmiersprache ähnelt.

Ich glaube, dass die Verwendung eines Flussdiagramms zur Beschreibung der Do-While-Struktur bei Anfängern mehr Verwirrung als Nutzen stiften kann. Betrachten Sie beispielsweise das folgende Problem:

Erstellen Sie ein Programm, das die Anzahl der geraden und ungeraden Zahlen im Bereich von 1 bis n zählt. Verwenden Sie eine Do-While-Schleife.

Um das Problem zu lösen, erstellen wir seinen Algorithmus. Dieses Mal entscheide ich mich für die Flussdiagrammnotation:

El ciclo do-while - dCodinGames (5)

Abbildung 4. Algorithmus in Flussdiagrammnotation für das vorgeschlagene Problem.

Bevor Sie erklären, wie der Algorithmus funktioniert, beachten Sie, dass es zwei bedingte Symbole (Rhombusse) gibt. Ich habe festgestellt, dass es den Schülern schwer fällt zu verstehen, wann dieses Symbol eine Wenn-, eine Weile- oder eine Do-while-Struktur ausdrückt. In diesem Fall stellt die erste Raute eine if-Struktur und die zweite eine do-while-Struktur dar, was an dem Seitenpfeil vor der ersten Raute zu erkennen ist.

Der Algorithmus funktioniert wie folgt:

  1. Fragen Sie nach dem Wert von n
  2. Initialisiert die geraden, ungeraden und i-Variablen.
  3. Überprüft, ob i durch 2 teilbar ist. Wenn ja, wird die Evens-Variable um 1 erhöht. Andernfalls wird die ungerade Variable um 1 erhöht.
  4. Die Variable i wird um 1 erhöht
  5. Es wird geprüft, ob i immer noch kleiner oder gleich n ist, wenn ja, werden die Schritte 3 und 4 wiederholt. Ansonsten werden die Werte der geraden und ungeraden Variablen gedruckt.

Sehen Sie sich nun an, wie das Schreiben desselben Algorithmus mithilfe der Flussdiagrammnotation die Dinge deutlich klären und vor allem eine einfachere Übersetzung in die Programmiersprache ermöglichen kann:

El ciclo do-while - dCodinGames (6)

Abbildung 5. Algorithmus in Pseudocode-Notation für das vorgeschlagene Problem

Können Sie erkennen, dass diese Notation mehr Struktur bietet als das Flussdiagramm? Im Folgenden stelle ich das entsprechende Programm in der Java-Sprache vor, damit Sie vergleichen können, wie die Übersetzung von Pseudocode in Code nahezu natürlich ist. Aber Sie ziehen Ihre eigenen Schlüsse.

/* * dCodinGames – Programm, das die Anzahl der geraden und ungeraden * Zahlen zählt, die in einem Bereich von 1 bis n ganzen Zahlen existieren. */import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;/** * * @author Gaby Nieva Paredes - dCodinGames */ public class OddCount { public static void main(String[] args ) löst eine IOException { int i=1, n, even = 0, odd = 0; BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in)); String-Eingabe; System.out.println("Geben Sie den Wert von n ein:"); input = buffer.readLine(); n = Integer.parseInt(Eingabe); do{ if ( i% 2 == 0) evens++; sonst ungerade++; i++; } while ( i<= n); System.out.println("Die Gesamtzahl der Paare beträgt: " + Paare); System.out.println("Die Summe der ungeraden Werte ist: " + ungerade); } }

1. Die Steuervariable (oder Variablen) können einen beliebigen Datentyp haben:

Für diesen Strukturtyp gilt jeder der primitiven Datentypen:int,verkohlen,schweben,doppeltjBoolescher WertSie können der Typ der Schleifensteuervariablen sein.

Es ist jedoch wichtig zu bedenken, dass diese Schleife nicht unbedingt von einer Kontrollvariablen (wie der for-Struktur) abhängt, sondern vielmehr von der Auswertung von abedingter Ausdruck. Die Verwendung einer Steuervariablen als Zähler hängt von der Art des zu lösenden Problems ab. Bei Bedarf können Sie jedoch jeden der primitiven Datentypen von Java verwenden.

Beispiel:

Schreiben Sie ein Programm, um jedes der ersten 100 Zeichen der ASCII-Tabelle zu drucken

Für diesen Fall eine Zählervariable, die ich aufrufen werdeX, es wird vom Typ seinverkohlen. Jedoch,X„zählt“ die Wiederholungen, in denen sich der Prozess befindet. Daher ist x dasSteuervariable. Nachfolgend stelle ich die Lösung vor:

/** * Beispielverwendung des Do-While-Zyklus * dCodinGames.com * @author Gaby Snow Walls */public class EjDoWhile1 { public static void main(String[] args) { char x=0; do{ System.out.println("Der Wert von x ist: " + Integer.toString(x) + " und sein Zeichen ist: " + x); x++; } while ( x <= 100 ); } } }

2. Der Steuervariablen können andere Inkremente oder Dekremente als 1 zugewiesen werden

Ähnlich wie die while-Schleife arbeitet die do-while-Schleife mit einer Steuervariablen, der andere Inkremente als 1 zugewiesen werden können. Das heißt, sie kann sich von 2 auf 2 bewegen oder von 0,5 auf 0,5 erhöhen.

3. Wenn die Schleife von einer Steuervariablen abhängt, muss sie ihren Wert innerhalb des Schleifenkörpers ändern, um Endlosschleifen zu vermeiden

Es ist zu beachten, dass sowohl die do-while-Schleife als auch die while-Schleife über keine integrierte Funktion zum Erhöhen der Steuervariablen verfügen. Daher muss dies explizit im Schleifenkörper erfolgen. Andernfalls besteht die Gefahr, dass ein unendlicher Kreislauf entsteht.

4. Es muss ein Desktop-Test durchgeführt werden, um zu überprüfen, ob der Zyklus beendet wird:

In Situationen wie der in Regel Nr. 2 erläuterten ist es notwendig, einen Desktop-Test durchzuführen (oder in die IDE integrierte Debugging-Tools zu verwenden), um sicherzustellen, dass Sie nicht in eine Endlosschleifensituation geraten.

5. Dieser Zyklus sollte verwendet werden, wenn Sie zunächst eine Reihe von Aktionen ausführen müssen und dann prüfen, ob diese wiederholt werden sollen.

Die Do-While-Schleife sollte für Probleme verwendet werden, bei denen Sie zuerst die Aktionen ausführen und dann auswerten müssen, um zu wissen, ob Sie die Aktionen wiederholen sollten oder nicht. In gewisser Weise impliziert dies zuerst"durchlassen"und dann"fragen".

Dies ist jedoch nicht bei allen Problemen erforderlich. Denken Sie in diesen Fällen daran, dass die while-Schleife eine „strengere“ Schleife darstellt, da sie die Auswertung der Bedingung erfordertVorum die Aktionen innerhalb des Zykluskörpers auszuführen.

Sie werden überrascht sein, wie viele Probleme die Do-While-Struktur besser lösen kann. Beispielsweise wird es in der Welt der Videospiele häufig verwendet, da davon ausgegangen wird, dass sich diese im Allgemeinen wie folgt verhalten:

  1. Du betrittst das Spiel
  2. Sie spielen
  3. Wenn Sie keine Leben mehr haben oder nicht mehr spielen möchten, schließen Sie das Spiel. Andernfalls wiederholen Sie Schritt 2.

Aus diesem einfachen Algorithmus können Sie schließen, dass es sich eindeutig um eine Do-While-Schleife handelt, die es Ihnen ermöglicht, zuerst zu spielen und dann zu bewerten, ob die Bedingungen zum Spielen noch erfüllt sind oder ob der Benutzer beenden möchte.

6. Sentinel-Daten können verwendet werden, um die Schleife zu beenden.

Obwohl die Verwendung einer Steuervariablen oder eines Zählers die beliebteste Methode zur Steuerung eines Zyklus ist, besteht eine andere Möglichkeit darin, „Sentinel“-Daten oder auch „Flags“ genannt zur Verwendung im bedingten Ausdruck zu verwenden. Diese Situation kommt sehr häufig vor, wenn die Größe der zu verarbeitenden Daten unbekannt ist.

Beispiel:

Schreiben Sie ein Programm, das die durchschnittliche Körpergröße einer Gruppe von n Personen ermittelt

Da die Größe der zu verarbeitenden Daten unbekannt ist, kann der Benutzer gefragt werden, ob er mit der Dateneingabe fortfahren möchte, und basierend auf dieser Antwort entscheiden, ob er den Zyklus fortsetzen oder stoppen möchte. In Abbildung 4 sehen Sie den Algorithmus für dieses Problem.

El ciclo do-while - dCodinGames (7)

Abbildung 6 – Algorithmus für Beispiel Nr. 2 unter Verwendung der do-while-Schleife.

Die Lösung zu diesem Beispiel sehen Sie unten:

/** * Beispiel für die Verwendung der do-while-Schleife * dCodinGames.com * @author Gaby Nieva Paredes */public class EjDoWhile2 { public static void main(String[] args) throws IOException { char Response; doppelter Durchschnitt=0, Höhe; int n=0; BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in)); String-Eingabe; do{ System.out.println("Geben Sie den Höhenwert ein:"); input = buffer.readLine(); height = Double.parseDouble(input); Durchschnitt += Höhe; n++; System.out.println("Weitere Höheninformationen hinzufügen? (J/N): "); input = buffer.readLine(); Antwort = input.charAt(0); } while(response == 'S' || Response == 's'); Durchschnitt /= n; System.out.println("Daten wurden empfangen " + n + "."); System.out.println("Die durchschnittliche Höhe beträgt: " + Durchschnitt); }}

UndWächterDabei handelt es sich um einen militärischen Wach- oder Aussichtsposten, der sich an einem Beobachtungsposten befindet und einen Ort, Einrichtungen, Material oder Personen schützt.

Beim Programmieren nennen wir einen Sentinel eine Variable, die dafür verantwortlich sein kann, das Programm über eine Situation zu informieren. In diesem Beispiel insbesondere die VariableAntwort, fungiert als Sentinel-Daten, die steuert, wann der Zyklus enden soll.

El ciclo do-while - dCodinGames (8)

Damit schließe ich mit den grundlegenden Informationen zur Do-While-Schleife ab.

Wenn Sie der Meinung sind, dass dieser Artikel für Sie nützlich war, teilen Sie ihn in Ihren sozialen Netzwerken. Und wenn Sie Fragen zum Thema haben, zögern Sie nicht, Ihren Kommentar und/oder Ihre Frage zu hinterlassen.

Bis zum nächsten Mal!

Verwandt

Die Do-While-Schleife – dCodinGames (2024)

FAQs

What is a real life example of do while loop? ›

Whenever you are writing code for a user driven program (where the program will be executed as many times as the user wants), you have to use the do-while loop. Example- you are writing code for a program which return the squares of the numbers user give.

What is the do while loop also known as? ›

Due to this property, the do… while loop is also called exit controlled or post-tested loop. When the test condition is evaluated as true, the program control goes to the start of the loop and the body is executed once more. The above process repeats till the test condition is true.

What is the difference between while and do while? ›

The main difference between a while and do while is that in do while, the loop will execute once even before checking the condition, whereas in a while loop, the loop executes if the condition is true.

What is the uniqueness of do loop while statement? ›

The do while loop checks the condition at the end of the loop. This means that the statements inside the loop body will be executed at least once even if the condition is never true. The do while loop is an exit controlled loop, where even if the test condition is false, the loop body will be executed at least once.

Is time loop possible in real life? ›

McTaggart's idea is that positions in time can be ordered by the relationship of precedence, i.e. earlier than or later than. This gives us the “B-series.” Time loops only exist in fiction and fantasy land stories.

What is loop in life? ›

No matter how busy (or not busy) your life is, you probably follow a pretty established routine day in and day out. You get up, shower, eat, work, sleep, etc… Face it? your life is a loop. Sure, there are a few things that you do each day that make that particular day unique, but you can chalk that up as branch logic.

How do you explain loops to a child? ›

Programming loops explained

Loops don't go on infinitely, though. Instead, they stop when they're told, they reach a particular conclusion, or they repeat a pre-set number of times. Loops can repeat something over and over again for you!

What are the two types of while loop? ›

Pascal has two forms of the while loop, while and repeat. While repeats one statement (unless enclosed in a begin-end block) as long as the condition is true. The repeat statement repetitively executes a block of one or more statements through an until statement and continues repeating unless the condition is false.

How does a while loop work? ›

A while loop is a loop that iterates through the code specified in its body — called a while statement — so long as a predetermined condition is met. If or when the condition is no longer met, the loop terminates. The code will print out "Bark" three times while i is less than 3.

What are three examples of loops in your everyday life? ›

Software of the ATM machine is in a loop to process transaction after transaction until you acknowledge that you have no more to do. Software program in a mobile device allows user to unlock the mobile with 5 password attempts. After that it resets mobile device.

When would you need a do-while loop? ›

Do-while loops can be useful when you know you want the code to run at least once (a while loop will not run at all if the condition it checks for is false beforehand, but a do-while loop will run once before it checks).

Where are while loops used? ›

The while loop is used when we don't know the number of times it will repeat. If that number is infinite, or the Boolean condition of the loop never gets set to False, then it will run forever.

Top Articles
Latest Posts
Article information

Author: Otha Schamberger

Last Updated:

Views: 6495

Rating: 4.4 / 5 (75 voted)

Reviews: 90% of readers found this page helpful

Author information

Name: Otha Schamberger

Birthday: 1999-08-15

Address: Suite 490 606 Hammes Ferry, Carterhaven, IL 62290

Phone: +8557035444877

Job: Forward IT Agent

Hobby: Fishing, Flying, Jewelry making, Digital arts, Sand art, Parkour, tabletop games

Introduction: My name is Otha Schamberger, I am a vast, good, healthy, cheerful, energetic, gorgeous, magnificent person who loves writing and wants to share my knowledge and understanding with you.