Ein Newbie hat eine Frage zu den while-Schleifen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
SittingDuck19
User
Beiträge: 2
Registriert: Freitag 28. Februar 2020, 15:08

Hallo alle zusammen,
erstmal freut es mich, nun Mitglied in diesem Forum zu sein.
Ich glaube meine Frage ist recht sonderbar, da sie sich auf tiefstes Basiswissen bezieht. Ich bin nämlich nur ein armer Student, der versucht, in dem Informatik-Modul seines Studiums (Maschinenbau) zurechtzukommen. Wenn ich bzw. meine Frage nicht in das Forum passt, dann fühlt euch freu, den Beitrag zu löschen.
Folgendes:
Den Sinn von Schleifen habe ich bereits verstanden. for-Schleifen und kopfgesteuerter while-Schleifen stellen kein Problem dar, aber bei der fußgesteuerten while-Schleife hapert es. Wie genau funktioniert das "True" im Kopf und worauf bezieht es sich?Habt ihr vielleicht ein einfaches Beispiel?
Im Voraus schon mal danke für die Anworten.

Liebe Grüße
SittingDuck ;)
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Vielleicht hilft ja der Blick ueber den Tellerrand. Andere Sprachen kennen sowas (ich mache das mal in Python-Syntax, aber es ist nicht Python):

Code: Alles auswählen

do:
    berechne_was()
while bedingung
Sprich: man hat eine Schleife, die garantiert *einmal* durchlaeuft, und dann am *Ende* (oder am Fuss, um in deiner Lingo zu bleiben) entscheidet man ueber das weiter vorgehen. Und in Python hat man dieses Konstrukt so nicht. Was macht man also? Sowas hier:

Code: Alles auswählen

while True: # immer wahr, bricht also nicht ab
     berechne_was()
     if bedingung-:
         break
SittingDuck19
User
Beiträge: 2
Registriert: Freitag 28. Februar 2020, 15:08

Hi,
also bezieht sich das "while True" auf die direkte Zeile darunter. Sprich:
Solange die Bedingung in der "zweiten" Zeile erfüllt ist, laufe ich immer weiter. Wenn dann die if-Bedingung in Zeile drei erfüllt ist, dann höre ich auf mit der Schleife?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das while-True bezieht sich - wie bei allen anderen Schleifen - auf den GESAMTEN eingerueckten Teil darunter. Also sowohl die berechnung, als eben auch die if-Abfrage, die ggf. aus der Schleife ausbricht.
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

@SittingDuck19: Nein. Das "while True:" bedeutet, dass die Schleife so lange ausgeführt wird, wie die Bedingung (also das True) wahr ist. Da True immer wahr ist, wird sie ewig ausgeführt. Es sei denn, innerhalb der Schleife wird break aufgerufen.
Antworten