while schleife in while schleife

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
linvris
User
Beiträge: 7
Registriert: Montag 17. März 2025, 13:46

Hallo,
wie im Betreff zu sehen geht meine frage um while schleife:

Code: Alles auswählen

#mache irgendwas
#Schleife 1
while True:
    #mache irgendwas
    #Schleife 2
    while True:
        #mache irgendwas
        a = b #als Beispiel mal angenommen, eigendlich sollen Eingänge abgefragt werden
        if a == b:
            wert = z
    #2. Schleife Ende, beginne wieder mit Schleife 2
#wenn hier ein Eingabe erfolgt 
benutzereingabe = input("Bitte Zahl eingeben")
#fahre hier weiter fort
if wert =z:
    print("Ok")
    else:
    print("No")
print(benutzereingabe)
In Schleife 2 gibt es Eingänge wo abgefragt werden und zu verschiedene Ergebnisse führt.
Wenn in Schleife 1 es zu einem Eingang oder Eingabe kommt fahre mit Schleife 1 weiter fort
Ist es so möglich while Schleifen so zu nutzen?
Sirius3
User
Beiträge: 18299
Registriert: Sonntag 21. Oktober 2012, 17:20

Mir wird aus dem Code und der Beschreibung nicht klar, was Du eigentlich machen möchtest.
die innere Schleife wird nie verlassen, weil es kein break gibt. Die äußere Schleife enthält gar keinen weiteren Code, es wird also nicht klar, wofür die gebraucht wird.
Die Antwort ist also: nein, so macht es keinen Sinn Schleifen zu verschachteln.
Bitte beschreibe Dein Problem so konkret wie möglich.
linvris
User
Beiträge: 7
Registriert: Montag 17. März 2025, 13:46

Habe den Fehler gefunden warum ich 2 Schleifen wollte,
Variablen wo sich ändern dachte ich, die müßte ich in einer 2ten Schleife innerhalb der ersten Schleife abfragen.
Mein denkfehler.
oldboyJR
User
Beiträge: 45
Registriert: Donnerstag 28. März 2024, 16:19

Schleifen in Schleifen haben den Sinn, wenn die innere Schleife keinen gültigen Wert bekommt die äußere Schleife die übrigen Werte als gültigen Wert anerkennt damit das nachfolgende Programm weitergeführt oder beendet wird. Die inneren Schleifen können ebenfalls innere Schleifen enthalten je nach dem wie komplex Werte differenziert behandelt werden müssen.
Sirius3
User
Beiträge: 18299
Registriert: Sonntag 21. Oktober 2012, 17:20

Ist das eine Anti-KI-Maßnahme, das Forum mit so viel Unsinn zu fluten?
Benutzeravatar
__blackjack__
User
Beiträge: 14134
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@oldboyJR: Und auch hier: Nein!
“It is easier to change the specification to fit the program than vice versa.” — Alan J. Perlis
oldboyJR
User
Beiträge: 45
Registriert: Donnerstag 28. März 2024, 16:19

_blackack_ Sorry ich mußte nach deinem Einwand doch tatsächlich noch mal im Buch nachschlagen in Python werden die Schleifen ein wenig anders formuliert abweichend von anderen Sprachen aber der sinn ist der selbe oder? Teile mir deine Meinung etwas detailierter mit
Sirius3
User
Beiträge: 18299
Registriert: Sonntag 21. Oktober 2012, 17:20

@oldboyJR: Schleifen sind dazu da, wiederholt Anweisungen auszuführen. Und dieser Wiederholen kann man auch verschachteln. Das ist der Sinn von Schleifen.
Was soll "wenn die innere Schleife keinen gültigen Wert bekommt" bedeuten? Eine Schleife kann keinen Wert bekommen. Variablen kann man Werte zuweisen, nicht aber Schleifen.
Was soll "die äußere Schleife die übrigen Werte als gültigen Wert anerkennt" bedeuten? Ich interpretiere mal, dass "anerkennen" eine Entscheidung sein soll, dann handelt es sich um eine if-Bedingung, nicht um Schleifen. Wobei ein Wert entweder als "gültig" interpretiert wird, oder als "nicht gültig", "anerkennen" ist kein Begriff, der in diesem Kontext definiert wäre.
"je nach dem wie komplex Werte differenziert behandelt werden müssen" ist sehr kontext-spezifisch. Wenn Werte unterschiedlich behandelt werden sollen, wären wir wieder bei if und nicht bei Schleifen.
Insgesamt kann ich mit dem Satz nichts anfangen, weil die Aneinanderreihung der Worte keinen Sinn ergibt, viel interpretiert werden müßte und damit alles oder nichts bedeuten könnte.
oldboyJR
User
Beiträge: 45
Registriert: Donnerstag 28. März 2024, 16:19

Sorry eine Schleife besteht aus Elementen if und elif die dazu dienen eine Abfrage zu formulieren und daraus verschiedene Werte oder Anweisungen zu generieren. Die Schleife liefert intern den Wert wahr oder falsch. Ziel einer Schleife ist durch vergleichen von Werten einen Wert wahr zu erreichen gelingt das nicht geht es in die nächste Schleife wo wieder das selbe versucht wird usw. Wird das ganze mit while betrieben ohne Einschränkungen und die Abfragen nie den Wert wahr erreicht (damit das else etwas tut )bleibt das Programm dort für immer stecken. Die while else Schleife macht das ja genau so. Wenn du jetzt den Einwand hast das wahr ein Zustand ist dann antworte ich wahr ist der bitwert 1 und falsch der bitwert 0!!
Benutzeravatar
__blackjack__
User
Beiträge: 14134
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@oldboyJR: Eine Schleife besteht nicht aus den Elementen ``if`` und ``elif`` und da werden auch keine Anweisungen generiert. Ziel einer Schleife ist es auch nicht „einen Wert zu erreichen“. Und wenn Du jetzt noch das ``else`` zu einer ``while``-Schleife ins Spiel bringst, dann müsste da auch noch ``break`` dazu kommen. Mir bangt aber schon vor Deinem Erklärungsversuch *davon*, denn auch dieser Beitrag von Dir war wieder total wirr und damit falsch.
“It is easier to change the specification to fit the program than vice versa.” — Alan J. Perlis
Benutzeravatar
Dennis89
User
Beiträge: 1594
Registriert: Freitag 11. Dezember 2020, 15:13

Du vertauschst/vermischst Schleifen mit `if`-Abfragen. Lese dir den vorherigen Post noch mal genauer durch und recherchiere noch mal etwas nach den genannten Begriffen.
Dein letzter Satz ist für mich ganz zusammenhangslos.
"When I got the music, I got a place to go" [Rancid, 1993]
Antworten