Hilfe bei Rekursion...

Diskutiere Hilfe bei Rekursion... im Java Basics - Anfänger-Themen Forum; Hi Leute, import java.util.Scanner; public class zaghö { static int summiere(int counter, int obergrenze) { int ergebnis= 0;...

  1. Hi Leute,
    Code (Java):

    import java.util.Scanner;

    public class zaghö {
       
        static int summiere(int counter, int obergrenze) {
            int ergebnis= 0;

           
            if (counter != obergrenze) {
                if ((counter-1) % 2 == 0) {
                    System.out.println("Addiere");
                    ergebnis = ergebnis + counter;
                } else {
                    System.out.println("Subtrahiere");
                    ergebnis = ergebnis - counter;
                }
            }
            return ergebnis + (summiere(counter++, obergrenze));
        }
        public static void main(String[] args) {
            System.out.println("Zahl bitte:");
            Scanner scanner = new Scanner (System.in);
            int obergrenze = scanner.nextInt();
            int counter = 1;
           
            int ergebnis= summiere(counter, obergrenze);
           
           
            System.out.println(ergebnis);
           
            scanner.close();
        }



        }

     
    Ich versuche hier, ohne Hilfe einer Schleife Zahlen zu addieren, jedoch weiss ich nicht genau, wie ich die Rekursion korrekt beenden kann. Damit ihr die Bedingungen korrekter versteht:
    upload_2019-2-13_15-44-29.png

    Ich bedanke mich für jeden Hinweis!
     
  2. Vielleicht hilft dir dieser Kurs hier weiter.
  3. Tarrew
    Tarrew Aktives Mitglied
    Code (Java):
    return ergebnis + (summiere(counter++, obergrenze));
    Der Fehler steckt in deinem counter++. Der Wert wird erst erhöht, nachdem die Methode zurück ist. Es wird also nicht der inkrementierte Wert in den Unteraufruf reingegeben. Deswegen rufst du deine Methode jedes Mal rekursiv mit counter = 0 auf.

    Änder mal "counter++" zu "++counter" oder "counter +1" und teste das nochmal.

    Eine gute IDE zeigt einem solche Fehler auch an ;)
    [​IMG]

    Dazu kommt dann die fehlende passende Abruchbedingung. Die steht idR am Anfang der Methode und heißt in deinem Fall wohl
    Code (Java):
    if (counter > obergrenze) return 0;
    Deine zweite if-Abfrage counter!=obergrenze kannst du dann auch weglassen.
     
    Zuletzt bearbeitet: 13. Feb. 2019
  4. Klappt jetzt. danke. Ich verstehe nur nicht, was der Unterschied von counter++ zu ++counter ist. Kannst du mir das noch einmal erklären?
     
  5. Tarrew
    Tarrew Aktives Mitglied
  6. Wenn du Java lernen möchtest, empfehlen wir dir diesen Kurs hier
Passende Stellenanzeigen aus deiner Region:





Die Seite wird geladen...

Hilfe bei Rekursion... - Ähnliche Themen

Bitte um Hilfe bei Quellcode (Rekursion)
Bitte um Hilfe bei Quellcode (Rekursion) im Forum Java Basics - Anfänger-Themen
Hilfe bei Rekursion,Ich verstehe nicht,wie funktioniert die Rekursion in der Methode "walk"
Hilfe bei Rekursion,Ich verstehe nicht,wie funktioniert die Rekursion in der Methode "walk" im Forum Java Basics - Anfänger-Themen
Hilfe zur Rekursion?
Hilfe zur Rekursion? im Forum Java Basics - Anfänger-Themen
Benötige Hilfe bei Potenzrechner mit Rekursion
Benötige Hilfe bei Potenzrechner mit Rekursion im Forum Hausaufgaben
Hilfe! Rekursion
Hilfe! Rekursion im Forum Java Basics - Anfänger-Themen
Thema: Hilfe bei Rekursion...