public class ConCountdown {

  public static void main(String[] args) {
    zeigeTitel("CountDown iterativ #1: ");
    countdownIterativ1(); // iterativ
    zeigeTitel("CountDown iterativ #2: ");
    //countdownIterativ2(); // iterativ
    zeigeTitel("CountDown iterativ #3: ");
    //countdownIterativ3(); // iterativ
    zeigeTitel("CountDown rekursiv #1: ");
    //countdownRekursiv1(10); // rekursiv
    zeigeTitel("CountDown rekursiv #2: ");
    //countdownRekursiv2(10); // rekursiv
    zeigeTitel("CountDown rekursiv #3: ");
    //countdownRekursiv3(10); // rekursiv
    zeigeTitel("CountDown rekursiv #4: ");
    //countdownRekursiv4(10); // rekursiv
    zeigeTitel("CountDown rekursiv #5: ");
    //countdownRekursiv5(10); // rekursiv
    zeigeTitel("CountDown rekursiv #6: ");
    //countdownRekursiv6(10); // rekursiv
  } // end of main

  public static void countdownIterativ1()
  {
    for (int i=10 ; i>-1 ; i--) {
      zeige(i);
    } // end of for
  }

  public static void countdownIterativ2()
  {
    int i=0;
    while (i<11) {
      zeige (10-i);
    } // end of while
  }

  public static void countdownIterativ3()
  {
    int i=10;
    while (i>-1) {
      zeige (i--);
    } // end of while
  }

  public static int countdownRekursiv1(int pZahl)
  {
    if (pZahl>-1)
    {
      pZahl = countdownRekursiv1(pZahl-1);
      zeige (pZahl);
    } // end of if
    return pZahl;
  }

  public static int countdownRekursiv2(int pZahl)
  {
    if (pZahl>-1)
    {
      zeige (pZahl);
      pZahl = countdownRekursiv2(pZahl-1);
    } // end of if
    return pZahl;
  }

  public static int countdownRekursiv3(int pZahl)
  {
    zeige (pZahl);
    pZahl--;
    if (pZahl>-1)
    {
      pZahl = countdownRekursiv3(pZahl);
    } // end of if
    return pZahl;
  }

  public static int countdownRekursiv4(int pZahl)
  {
    if (pZahl>-1)
    {
      zeige (pZahl);
    } // end of if
    pZahl = countdownRekursiv4(pZahl-1);
    return pZahl;
  }

  public static int countdownRekursiv5(int pZahl)
  {
    if (pZahl>-1)
    {
      zeige (pZahl--);
      countdownRekursiv5(pZahl);
    } // end of if
    return pZahl;
  }

  public static int countdownRekursiv6(int pZahl)
  {
    countdownRekursiv6(pZahl);
    if (pZahl>-1)
    {
      zeige (--pZahl);
    } // end of if
    return pZahl;
  }

  public static void zeige (int pZahl)
  {
    System.out.print(pZahl + " ");
  }

  public static void zeigeTitel(String pTitel)
  {
    System.out.println();
    System.out.println();
    System.out.println(pTitel);
  }
} // end of class ConCountdown