Zum Inhalt springen
L

Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).

Java REKURSION verstehen in 5 min - Java Programmieren Lernen Deutsch - 45

Jonas Keil5:19 22.390 Aufrufe veröffentlicht Auf YouTube

Das Wichtigste aus dem Video

Tipp auf eine Zeit – das Video springt genau dorthin.

Transkriptautomatisch erstellt · 42 Zeilen
Herunterladen
  1. Rekursion ist ein Thema mit dem sich besonders viele Programmieranfänger sehr schwer tun deshalb zeige ich dir in diesem Video alles was du zu Rekursion
  2. in Java wissen musst in der Theorie klingt das Ganze noch ziemlich einfach Rekursion bedeutet einfach nur dass wir eine Methode haben und diese Methode
  3. ruft sich dann selber auf das kann ich dir am besten zeigen indem wir das einmal an ein Beispiel durchgehen dafür erstellen wir uns hier eine Methode
  4. public static Void Hello World falls du eine aurischung zu Methoden in Java brauchst stell sicher dass du das Video hier in der Infobox gesehen hast dieser
  5. Methode Hello World wollen wir jetzt eine Bildschirmausgabe machen also system out printline Hello World und nach dieser Ausgabe soll sich die
  6. Methode jetzt selbst aufrufen und dafür schreiben wir hier Hello World und dass diese Methode Hello World sich jetzt im Code selbst aufruft das ist genau der
  7. Sinn hinter Rekursion das siehst Du auch an diesem wiederholungssymbol dass dir hier in IntelliJ angezeigt wird hier lautet die Bezeichnung nämlich recursive
  8. call also rekursiver Aufruf lass uns das Programm jetzt einmal starten dann siehst Du passiert hier noch nichts weil unser Programm immer nur den Code
  9. ausführt der in der Main Methode steht das heißt was wir jetzt noch machen müssen ist hier in unserer Main Methode die Hello World Methode aufzurufen und
  10. wenn wir das ganze jetzt starten dann bekommen wir hier sehr oft die Ausgabe Hello World bis das Programm irgendwann abgebrochen ist und zwar mit einer
  11. Exception genauer gesagt mit einem stack overflow error dieser stack overflow error der ist jetzt aufgetreten weil wir hier in unserem Programm eine
  12. Endlosschleife programmiert haben das heißt die Ausgabe Hello World die wurde einfach immer wieder auf dem Bildschirm ausgegeben bis es dem Programm
  13. irgendwann zu viel wurde und es hier zu diesem stack overflow errow gekommen ist du kannst also sicher denken dass wir hier in unserer Methode etwas ganz
  14. Entscheidendes vergessen haben nämlich eine Bedingung die dafür sorgt dass unser Programm irgendwann wieder abgebrochen wird ich zeig dir mal wieso
  15. eine Bedingung meistens bei rekursiven Methoden implementiert wird dafür erstellen wir uns als erstes hier in unserer Methode einen Parameter der
  16. jetzt bestimmt wie oft wir diese Methode hier rekursiv durchlaufen wollen angenommen wir wollen die Methode Zeh mal aufrufen also hier Zeh mal Hello
  17. World auf dem Bildschirm ausgeben dann übergeben wir hier bei unserer Methoden aufru einfach den Wert 10 und mit jedem Durchlauf durch unser Programm wollen
  18. wir diesen Wert um eins verringern und alles was wir jetzt noch machen müssen ist eine Bedingung zu formulieren die das Programm auch abbricht wenn unser
  19. Counter bei ull steht dafür können wir hier schreiben if Counter = 0 dann wollen wir ausgeben SIS out fertig und ansonsten wenn der Counter
  20. noch größer als Null ist wir das Programm also noch nicht beenden wollen dann wollen wir hier den Code ausführen den wir am Anfang geschrieben haben so
  21. und wenn wir das Programm jetzt Start dann siehst Du wird hier exakt zehn Mal Hello World auf dem Bildschirm ausgegeben bis am Ende die Ausgabe
  22. fertig kommt gut jetzt hast du gelernt wie Rekursion in der Theorie funktioniert und jetzt will ich dir einmal etwas zeigen dass du mit
  23. Rekursion in Java echt schön lösen kannst dafür löschen wir das ganze hier einmal und das Beispiel dass ich dir jetzt zeigen will heißt Fakultät du
  24. erinnerst dich wahrscheinlich noch aus Mathe das war dieses Ausrufezeichen dass du hinter deine Zahl geschrieben hast und F Fakultät hat in dem Sinne nur
  25. bedeutet dass du 5 x 4 x 3 x 2 x 1 gerch hast und vielleicht siehst Du ja schon warum wir dieses Problem jetzt echt schön mit Rekursion lösen können als
  26. erstes schreiben wir uns dafür eine Methode public static int unsere Methode wird diesmal nämlich ein Integer zurückgeben wirst du gleich sehen was
  27. das macht nenn die jetzt einfach Fakultät und übergeben der Methode noch eine Zahl von der wir die Fakultät berechnen wollen okay nehmen wir mal an
  28. wir wollen hier von unserer Main Methode aus die Methode Fakultät 5 aufrufen dann heißt das dass wir jetzt rechnen wollen 5 x 4* 3 x 2 x 1 und der Grund weshalb
  29. wir das jetzt rekursiv umsetzen können ist der dass fün Fakultät nichts anderes ist als 5 x 4 Fakultät vier Fakultät ist aber wiederum nichts anderes als 4 x 3
  30. Fakultät 3 Fakultät ist wiederum 3 x 2 Fakultät und immer so weiter du siehst was wir hier in unserer Methode als Ergebnis zurückgeben können ist einfach
  31. die Zahl die unserer Fakultät hier übergeben wird mal der Fakultät von dieser Zahl aber um eins verringert auf unser Beispiel angewendet heißt das wir
  32. Ruf hier Fakultät von der Zahl 5 auf und zurückgegeben bekommen wir dann 5 mal der Fakultät von 5- 1 also 4 diese Methode ruft sich also wieder selbst auf
  33. diesmal aber mit der Zahl 4 und gibt dann wiederum zurück 4 mal der Fakultät von 4-1 also in dem Fall 3 und du siehst damit wir hier nicht den gleichen Fehler
  34. wie am Anfang machen müssen wir hier noch eine Abbruchbedingung schreiben und zwar wollen wir mit dem Rechnen ja aufhören wenn wir hier bei der Zahl 1
  35. angekommen sind also ifzahl = 1 und dann stoppen wir die Rekursion indem wir hier nicht mehr Fakultät aufrufen sondern jetzt einfach eins zurückgeben und
  36. solange unsere Zahl hier noch größer als ein ist wollen wir hier ganz normal weiterrechnen das Ergebnis von unserer Berechnung wollen wir jetzt noch
  37. ausgeben und wenn wir das Programm jetzt starten dann siehst Du es unser Ergebnis 120 wenn du Lust hast kannst du diese Zahl ja aus Spaß einmal durch einen
  38. Scanner einlesen lassen und dann schauen bis zu welcher Fakultät dein PC das ganze berechnen kann wenn dich Videos zu Konzepten wie der Rekursion
  39. interessieren solltest du auf jeden Fall auch dieses Video hier ausgecheckt haben da erkläre ich dir was es mit Polymorphie in Java auf sich hat wenn
  40. dir dieses Video geholfen hat Rekursion zu verstehen dann lass mir einen Daumen nach oben da und schreib mir dein Feedback in die Kommentare falls dich
  41. das Thema Rekursion interessiert und du noch mehr dazu lernen möchtest schau auf jeden Fall mal in den Link unten in der Videobeschreibung wir bei sehen uns im
  42. nächsten Video macht's gut und bis dahin ciao

Zum Nachlesen