[Java] Wie funktioniert dieser Code?

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Konne, 22. April 2010 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 22. April 2010
    Wie funktioniert dieser Code?

    Also hab 2 Methoden...

    x soll in der ersten methode "4" sein in der zweiten "5"

    static void p( int x ) {
    if (x>0) p(x-1);
    System.out.println(x);
    }

    static int pd( int x ) {
    if ( x == 0 ) return 1;
    else {
    int y = pd( x-1 );
    System.out.println( x+y );
    return y +1 ;
    }
    }


    was nach dem compilieren rauskommt weiß ich.
    Bsp.: bei der ersten kommt
    0
    1
    2
    3
    4
    raus
    aber bei der zeile: if (x>0) p(x-1); dachte ich mir, da ja x > 0 der Fall ist geht er sofort in die p(x-1), sprich er hängt in der if schleife fest solange bis x nicht mehr größer 0 ist.
    sodass jetzt also p(3) an der stelle wäre, er kommt wieder in die if schleife merkt dass 3>0 ist geht wieder in die p(3-1)...und lässt solange System.out.println(x); aus der reihe bis x <= 0?
    vllt könnte mir jemand diese methoden im sinne der rekursion näher erläutern.
    danke
     
  2. 23. April 2010
    AW: Wie funktioniert dieser Code?

    Code:
    if (4>0) p(4-1);
     if (3>0) p(3-1);
     if (2>0) p(2-1);
     if (1>0) p(1-1);
     if (0>0) p(0-1);
     System.out.println(0);
     System.out.println(1);
     System.out.println(2);
     System.out.println(3);
    System.out.println(4);
    das zweite wolltest du ja nicht explizit erläutert haben, also mach ich mir auch nich die mühe

    ps: eine if schleife gibt es nicht
     
  3. 23. April 2010
    AW: Wie funktioniert dieser Code?

    erste mehtode is rekursiv so zu verstehen:
    1. x = 4 : x>0 --> p(3) aufgerufen
    2. x =3 : x > --> p(2) aufgerufen
    3. x = 2 : x > 0 --> p(1) aufgerufen
    4. x = 1 : x>0 --> p(0) aufgerufen
    5. x =0 : x = 0 -->ausgabe von 0
    6. gehe rekursionsbaum rückwärts
    7. ausgabe 1
    8. ausgabe 2
    8. ausgabe 3
    8. ausgabe 4

    und nach dem prinzip funktioniert dann auch die 2.
     
  4. 23. April 2010
    AW: Wie funktioniert dieser Code?

    achso ja meinte natürlich if-anweisung.
    so funktioniert das also dankeschön
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.