Bifalgorithm post · Computer science one · Recursion
How can a countdown be written without a loop?
How can a countdown be written without a loop? (Computer science one · Recursion) — "Suppose we wanted to write a simple program that performed a countdown, pr…
Ideas in this flowchart
- Rekursiver Countdown ohne Schleifen
- Das Programm soll die Zahlen n bis 0 ausgeben und bei null „Happy New Year!!!“ anzeigen.
- Naheliegend wäre zunächst eine for-Schleife mit einer Zählvariable.
- In der angenommenen Umgebung stehen jedoch keine gewöhnlichen Schleifenstrukturen zur Verfügung.
- Stattdessen wird der Countdown durch rekursive Funktionsaufrufe umgesetzt.
- Eine Funktion erhält den aktuellen Zählerwert, verringert ihn und ruft sich anschließend selbst auf.
- Die Funktion CountDown erhält eine ganze Zahl n ≥ 0 und erzeugt die Ausgabe n, …, 0.
- Es wird geprüft, ob der aktuelle Wert n gleich null ist.
- Wenn n = 0 gilt, wird „Happy New Year!!!“ ausgegeben und kein weiterer Funktionsaufruf ausgeführt.
- Wenn n nicht null ist, wird der aktuelle Wert ausgegeben und der Countdown fortgesetzt.
- Zuerst gibt die Funktion n aus.
- Danach ruft sie CountDown(n − 1) auf.
- Bei einem Startwert von 10 entstehen die Aufrufe für 10, 9, 8, …, 1 und schließlich 0.