rekursion nicht verstanden

  • Themenstarter Themenstarter Gelöschtes Mitglied 54019
  • Beginndatum Beginndatum
G

Gelöschtes Mitglied 54019

Gast
Hallo in die Runde,

Ich dachte ich habe die Rekursion verstanden, wollte also eine einfache fakultaet hacken.
Frage mich wo hier der/die Fehler liegt/liegen:
Java:
import java.util.*;

public class Rekursion {

    private int ausgangszahl;
    private int ergebnis;

        public static void main (String [] args) {
      
        Scanner eingabe = new Scanner(System.in);
        System.out.println("\nGeben Sie einen Integer ein: ");
        int e = eingabe.nextInt();
      
        int e = ausgangszahl;

        public static int rekursiv(int ausgangszahl) {
            if (ausgangszahl >= 100) && (ausgangszahl >= 1) {
                return rekursiv(ausgangszahl-1);
            }
            else {
                ergebnis = ausgangszahl;
                return ergebnis;
            }
        }

            System.out.println("\n" + ergebnis);
          
        }

}

mein Compiler meckert mich von oben bis unten nur voll
illegal start of expression bei ,,public static int rekursiv (...."
error: "else" without "if" etc...

Vielleicht kann mich jemand auf den richtigen Weg führen?

Danke euch!
mfg JavaXava
 
Zuletzt bearbeitet von einem Moderator:
Schau dir mal genau an wo du deine Methode deklariert hast.
Methoden werden niemals in anderen Methoden deklariert 😉

Java:
public static void main(String[] args)
{
    foobar()
}

public static void foobar()
{
}
 
Danke für die Tipps, ich versuch das was ihr gemeint habt mal umzusetzen und melde mich ob es geklappt hat 😀
 
Alle Tipps umgesetzt, + Variablen noch static gemacht, und siehe da => Es funktioniert!!!
Man kann sagen was man will, aber macht einen Anfänger schon stolz 😀
Danke für eure Tipps, ich hänge nochmal meinen verbesserten Code an, dieser funktioniert perfekt.

Code:
import java.util.*;

public class Rekursion {

    private static int ausgangszahl;
    private static int ergebnis;
    private static int e;
  
    public static int rekursiv(int ausgangszahl) {
      
        if (ausgangszahl >= 1) {
              
                return rekursiv(ausgangszahl-1);
            }
          
        else {
          
                return ausgangszahl;
            }
      
        }
  
            public static void main (String [] args) {
      
            Scanner eingabe = new Scanner(System.in);
            System.out.println("\nGeben Sie einen Integer ein: ");
            e = eingabe.nextInt();
      
            e = ausgangszahl;
      
            rekursiv(e);
      
            System.out.println("\n" + ausgangszahl);
          
        }

}

mfg, JavaXava
 

Zurück
Oben