TigerJython: Repeat-Schleife mit Kondition?
Hallo an die Community,
das Programm, das ich zum Programmieren nutze, nennt sich TigerJython (ich glaube, das basiert auf Python) und ich wollte eine Repeat-Schleife machen:
while n < 4:
if n < 4:
inputInt("Die Zahl muss mindestens 4 sein, versuchs nochmal")
else:
Reihe()
Jedoch funktioniert die nicht ganz, wie ich es wollte.
Also, ich wollte, dass es so ist, dass, wenn die Zahl unter 4 ist, würde es nicht gehen und man muss es solange eingeben, bis die Zahl entweder 4 oder über 4 ist. Das Gleiche auch nochmal mit 12. Also, das die Zahl nicht über 12 sein darf.
Jedoch ist es entweder so, dass nach zweimal die Funktion, die ich davor definiert habe (hier nicht mit dabei), einfach von allein geht oder egal was ich eintippe, mein inputInt immer wieder kommt. Also, wegen der Schleife davor.
Kann mir bitte jemand helfen? Ich brauche die Hilfe wirklich.
Schon einmal Danke im Voraus.
4 Antworten
Du musst den Input Integer in der Schleife einlesen, und als while-Kondition machst du einfach inputInt < 4 oder inputInt > 12
Ich denke du hilfst uns sehr wenn du einfach auf deine Frage eine Antwort mit deinem Kompletten Code schickst, und nicht nur so bruchteilig
n = inputInt(...)
while not (n >= 4 or n <= 12):
n = int(input("Die Zahl muss zwischen 4 und 12 sein"))
So ist es glaube ich richtig
Reihe()
Was soll das bedeuten?
das war eine davor definierte funktion aber danke ich habe es jetzt geschafft:))
Deine Schleife mit if-Abfrage drin macht relativ wenig Sinn.
Du lässt die Schleife so lang laufen, bis n größer gleich 4 ist. DH die Schleife wird nur ausgeführt, wenn n kleiner als 4 ist. Deine If-Abfrage in der Schleife kannst du dir also komplett sparen - der else-Block, und damit Reihe(), wird nie ausgeführt.
Dann veränderst du auch n in der Schleife nicht - deine Schleife wird ewig weiterlaufen
ich weiß zwar nicht, was du in "Reihe" machst - und lass auch mal Exception Handling bei der Eingabe weg:
while n < 4:
n = int(input("Zahl muss mindestens 4 sein"))
Reihe()
Ich hab genau das bei meiner Antwort noch ergänzt.
was ich versucht habe zu coden war das sich es solange wiederholt bis n größer/gleich 4 ist und wenn n dann 4 oder größer ist sollte sich die davor definierte funktion auslösen
dann tu das doch nächstes mal
ja ich hatte es übersehen trz danke hat mir sehr geholfen :))
noch eine frage...wenn du mir dabei noch helfen könntest wäre echt nice....wie kann ich das coden das wenn ich beim input nichts eingebe das als grundeinstellung 8 als n ist?
Java ...?
Du willst mir erklären, dass der Python Code auf JVM Bytecode kompiliert wird? Soweit ich das sehe, läuft TIgerJython einfach nur selbst über Java. Fakt ist aber dass die ganze Geschichte mit Java nichts am Hut hat.
while n < 4:
if n<4:
inputInt < 4 ("Die Zahl muss mindestens 4 sein, versuchs nochmal")
else:
Reihe()
wenn ich versuche es durchzuführen steht bei mir "Fehlender Operator oder Komma. [line 54]"