for Schleife durch Rekursion ersetzen

N

nikva

Bekanntes Mitglied
Ich will folgende Methode durch eine rekursive Methode ersetzen:
Die Ausgabe soll wie folgt aussehen:

Hours passed: duration-duration
Hours passed: duration-(duration-1)
Hours passed: duration-(duration-2)
u.s.w

Java:
    public static void runSuperSale(int duration) {
        for (int i = duration; i > 0; i--) {
            System.out.println("Hours passed: " + (duration - i));
        }
    }


Wenn ich es so mache dann kommt logischerweise immer 0 raus
Java:
    public static void runSuperSale(int duration) {
        int x = duration;
        System.out.println("Hours passed: " + (duration - x));
        if (duration - x < duration) {
            runSuperSale(duration - 1);
        }
    }

Wenn ich x einen fest wert zuweise dann funktioniert die Methode nur mit einem bestimmten parameter
Es muss iwie eine Möglichkeit geben beim ersten Aufruf einen konstanten wert zu erzeugen der dann beim nächsten Aufruf verwendet wird.
Oder geht das nur mit einer Hilfsmethode?
 
T

TM69

Bekanntes Mitglied
1. Warum willst du eine Wert haben
2. Warum benutzt du keine Parameter
3. Wieso willst du eine statische Funktion rekusiv machen? - Ich meine ggf. kannst du bei einer nicht statischen Funktion auch eine Klassenvariable machen, und wenn du es statischen machen willst, warum benutzt du es nicht so wie man es bei Instanzenzählern macht? :D
 
A

affot

Mitglied
Also abgesehen davon, dass man das es iterativ besser ist... Hier mit Rekursion :)
Java:
    static void methode(int duration) {
        if (duration > 0) {
            methode(duration - 1);
            System.out.println("Hours passed: " + (duration - 1));
        }

    }

Ich denke der Knackpunkt ist der, dass du ERST die Funktion rekursiv aufrufst und dann den Print-Aufruf. Dadurch wird die Zeile von unten nach oben ausgespuckt.
 
N

nikva

Bekanntes Mitglied
Ich denke der Knackpunkt ist der, dass du ERST die Funktion rekursiv aufrufst und dann den Print-Aufruf. Dadurch wird die Zeile von unten nach oben ausgespuckt.
Danke, das ergibt natürlich Sinn :D
Ich hab es andersrum versucht und dann lief die natürlich in einem unendlichen Kreis...
 
N

nikva

Bekanntes Mitglied
Ich soll auch Junit Tests schreiben und bin jetzt bei dieser Methode angelangt und Frage mich ob diese überhaupt testbar ist. Sie hat keinen Einfluss auf andere Objekte und hat auch keinen Rückgabewert den man vergleichen könnte.
Man könnte höchstens das Print Statement in einem String zwischenSpeichern und den dann vergleichen, aber ist es sinnvoll das extra für den Junit Test zu machen, oder sollte man die Methode einfach ungetestet lassen?
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Man könnte höchstens das Print Statement in einem String zwischenSpeichern und den dann vergleichen, aber ist es sinnvoll das extra für den Junit Test zu machen, oder sollte man die Methode einfach ungetestet lassen?
Man könnte sie auch anderswo hin als nach System.out schreiben lassen oder für den Test System.out "überschrieben" und damit alles mitschneiden was dort landet :)

Ungetestet lassen ist meistens die schlechteste Wahl :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Rekursion durch Schleife ersetzen Java Basics - Anfänger-Themen 9
N Probleme beim printen von Arrays durch for Schleife Java Basics - Anfänger-Themen 3
B OOP While Schleife läuft Endlos durch externen aufruf Java Basics - Anfänger-Themen 2
D While Schleife bei Bedarf durch Eingabe stoppen Java Basics - Anfänger-Themen 15
M For-Schleife durch zwei versch. Variablen begrenzen Java Basics - Anfänger-Themen 27
R Eine Schleife durch eine Methode schließen? Java Basics - Anfänger-Themen 4
S For-Schleife durch "ESC" verlassen? Java Basics - Anfänger-Themen 2
D Klasse durch eine Schleife wiederholen Java Basics - Anfänger-Themen 1
T Division durch 0 abfangen mit Schleife Java Basics - Anfänger-Themen 4
N Nummernblock durch FOR-Schleife? Java Basics - Anfänger-Themen 2
K While-Schleife läuft nicht durch Java Basics - Anfänger-Themen 12
H durch Schleife 50 Variablen abfragen Java Basics - Anfänger-Themen 8
J Schleife durch nichtseingeben/Enter beenden. Java Basics - Anfänger-Themen 5
L Lokale Variablen automatisch durch Schleife erzeugen Java Basics - Anfänger-Themen 2
G wurzel durch probieren in einer schleife bekommen Java Basics - Anfänger-Themen 5
D Schleife durch Hashmap Java Basics - Anfänger-Themen 4
T for-Schleife durch sleep verzögern? Java Basics - Anfänger-Themen 1
N Konsole: while Schleife durch Tastensruck abbrechen Java Basics - Anfänger-Themen 4
T Bestimmte Zahlen ausgeben mit einer whilfe Schleife Java Basics - Anfänger-Themen 21
J for /while Schleife Java Basics - Anfänger-Themen 5
A While Schleife - buubelsort methode Java Basics - Anfänger-Themen 2
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
DorFey Schrittweises abändern des GUI während for-Schleife / pausieren einer for-Schleife Java Basics - Anfänger-Themen 3
P Bedingung in Schleife wird nicht ausgeführt Java Basics - Anfänger-Themen 5
J Wie kann ich hier eine While schleife einbauen? Java Basics - Anfänger-Themen 3
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
K Erste Schritte Programm geht aus Schleife, warum? Java Basics - Anfänger-Themen 2
I Java zweidimensionales array befüllen mit for-schleife Java Basics - Anfänger-Themen 2
S Do-While-Schleife Java Basics - Anfänger-Themen 2
S While Schleife Java Basics - Anfänger-Themen 4
KogoroMori21 Mit einer Schleife eine Treppe zeichnen Java Basics - Anfänger-Themen 29
S Do-While Schleife Java Basics - Anfänger-Themen 6
T Programm Schleife/if Java Basics - Anfänger-Themen 2
S for-Schleife wird ignoriert Java Basics - Anfänger-Themen 15
L String in Do-While-Schleife Abbruchkriterium Java Basics - Anfänger-Themen 1
S Variablen Variablen in einer Schleife erstellen lassen Java Basics - Anfänger-Themen 11
tom.j85 Doppelte Foreach Schleife: Am Ende wird immer das Gleiche Objekt eingefügt Java Basics - Anfänger-Themen 4
J Apache Poi - createCell() Methode akzeptiert keinen Index aus for-schleife als Parameter Java Basics - Anfänger-Themen 4
A Summe des Arrays pd mit alternativer Schleife Java Basics - Anfänger-Themen 2
T Ausgabe einer for Schleife Java Basics - Anfänger-Themen 2
J Abbruchbedingung in Schleife/ Untersuchung von Strings Java Basics - Anfänger-Themen 2
M Ist es möglich, das größte und zweitgrößte element in einem Array mit nur einer Schleife ausfindig zu machen ? Java Basics - Anfänger-Themen 19
UnknownInnocent Methoden While-Schleife so lange ausführen, wie Methode etwas zurückgibt Java Basics - Anfänger-Themen 2
P geschachtelte Schleife mit Strings Java Basics - Anfänger-Themen 2
V Erste Schritte Potenzen b^n mittels Schleife ermitteln Java Basics - Anfänger-Themen 7
T DoWhile Schleife über mehrere Mothoden Java Basics - Anfänger-Themen 5
ZH1896ZH Datentypen Error bei For-Schleife Java Basics - Anfänger-Themen 2
G Programm mit Schleife funktioniert nicht Java Basics - Anfänger-Themen 5
H For-Schleife für 60 sekunden laufen lassen Java Basics - Anfänger-Themen 1
G For Schleife-Basic Java Basics - Anfänger-Themen 11
V Erste Schritte for-Schleife; Ausgabe soll alle 5 Sekunden erfolgen. Java Basics - Anfänger-Themen 4
S Hilfe bei meinem Code [Schleife]? Java Basics - Anfänger-Themen 5
S Unbedingte hilfe bei Java Aufgabe [Schleife / Zinsrechnung] Java Basics - Anfänger-Themen 14
B Berechnung zu einer Schleife formen Java Basics - Anfänger-Themen 6
B Verschachtelung von For-Schleife in While Schleife Java Basics - Anfänger-Themen 14
V Wie lasse ich die for-Schleife so oft laufen wie per Scanner angegeben? Java Basics - Anfänger-Themen 3
V Wie wiederhole ich eine for-Schleife beim erreichen eines Wertes Java Basics - Anfänger-Themen 9
G while schleife Java Basics - Anfänger-Themen 11
G while schleife mit array Java Basics - Anfänger-Themen 12
Henri Anpassung ein Schleife(Zuweisung eines Ordners) Java Basics - Anfänger-Themen 0
Henri Anpassung ein Schleife(Zuweisung eines Ordners) Java Basics - Anfänger-Themen 27
V Schleife für das Einlesen von Werten für int Variablen, die Bestandteil von Arrays sein sollen Java Basics - Anfänger-Themen 16
L Scanner schließen in While-Schleife? Java Basics - Anfänger-Themen 2
N Schleife für ein Würfelspiel Java Basics - Anfänger-Themen 10
G While schleife Java Basics - Anfänger-Themen 2
B Schleife von anderer Methode stoppen? (Start continue) Java Basics - Anfänger-Themen 18
F ForEach Schleife Java Basics - Anfänger-Themen 1
S For-Schleife in For-Schleife Java Basics - Anfänger-Themen 10
J Mit for Schleife einen String Rückwärts befüllen Java Basics - Anfänger-Themen 9
mor16Euro Erste Schritte Wie nennt man eine While oder For schleife die nie Ausgeführt wird Java Basics - Anfänger-Themen 5
K Return in Schleife Java Basics - Anfänger-Themen 4
F Abbruchbedingung einer For-Schleife Java Basics - Anfänger-Themen 5
W for Schleife in allgemeingültiges Konstrukt aus Stream und Lambdas Java Basics - Anfänger-Themen 6
R for schleife ohne klammer Java Basics - Anfänger-Themen 14
R For-Schleife Java Basics - Anfänger-Themen 5
C Verständnisfrage bezüglich der Do-While Schleife Java Basics - Anfänger-Themen 9
S Verschachtelte Schleife Java Basics - Anfänger-Themen 3
O BufferedReader - Endlos Schleife Java Basics - Anfänger-Themen 2
F Warum verläuft DIESE Schleife endlos? Java Basics - Anfänger-Themen 4
F Primzahlsuche Schleife funktioniert nicht, HILFE! Java Basics - Anfänger-Themen 8
N while Schleife wird nicht beendet, obwohl Sie hätte breaken sollen Java Basics - Anfänger-Themen 4
M Unendliche schleife Java Basics - Anfänger-Themen 7
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
O Wert in einer Schleife unterschiedlich erhöhen Java Basics - Anfänger-Themen 2
L Doppelte Schleife Anpassen Java Basics - Anfänger-Themen 5
S werte von objekten in schleife verändern Java Basics - Anfänger-Themen 14
A Erste Schritte Hilfe für for-Schleife Java Basics - Anfänger-Themen 1
X Wie Rechnet man in einer For-Schleife *? Java Basics - Anfänger-Themen 3
A Erste Schritte while-Schleife Java Basics - Anfänger-Themen 38
K Unterschied for-Schleife Java Basics - Anfänger-Themen 14
Z Boolean Abfrage in einer for each Schleife Java Basics - Anfänger-Themen 2
T for schleife Java Basics - Anfänger-Themen 24
M Objekte mit einer Schleife mehrmals erzeugen Java Basics - Anfänger-Themen 17
S Doppel For Schleife mit Arrays - Problem bei der Ausgabe Java Basics - Anfänger-Themen 4
UnknownInnocent Unnötige Schreibarbeit in for Schleife verhindern Java Basics - Anfänger-Themen 12
K Warum wird if-Schleife nicht ausgeführt? Java Basics - Anfänger-Themen 13
G Arraynamen über eine Schleife ansprechen Java Basics - Anfänger-Themen 4
I Methoden Schleife immer wieder durchlaufen lassen Java Basics - Anfänger-Themen 15
X While Do schleife funtioniert nicht Java Basics - Anfänger-Themen 5
J 2 "while"-Anweisungen in einer do-Schleife? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Anzeige

Neue Themen


Oben