Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Sonstige Fragen » Rekursion - Return-Problem » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Rekursion - Return-Problem
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Tina92
unregistriert
Rekursion - Return-Problem Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
Hallo :-)

Ich habe den nachfolgenden Code geschrieben, verstehe aber nicht, warum mir mein return immer das Ergebnis der Addition liefert? Ich hätte gerne die beiden Ergebnisse nebeneinander (oder untereinander) stehen.

Vielen Dank :-)

Meine Ideen:
Der Code:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:

package rekursiv;

public class rekursiv 
{
    public static void main(String[] args) 
    {
        System.out.println(rekursivFakultät(255));
    }
    
    public static int rekursivFakultät (int n)
    {
        int zahl1 = n; 
        int zahl2 = n+10; 
        
        return zahl1 + zahl2; 
    }
}




06.07.2015 01:24
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Die Funktion ist weder rekursiv, noch berechnet sie eine Fakultät.

Der Rückgabewert der Funktion ist int, also eine einzige Ganzzahl.

Zitat:
die beiden Ergebnisse

Was ist denn das andere Ergebnis?

__________________
Syntax Highlighting fürs Board (Link)
06.07.2015 14:36 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Tina92
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Entschuldige bitte, da habe ich totalen Mist gebaut. Hier der richtige Code:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:

package rekursiv;

public class rekursiv 
{
    public static void main(String[] args) 
    {
        System.out.println(rekursivFakultät(5));
    }
    
    public static int rekursivFakultät (int n)
    {
        int result = 1; 
        
        if (n>0)
        {
            result *=n;
            return rekursivFakultät(n-1) + result;
        }
        else return 1; 
    }
}




Anstatt 120 für die Fakultät bekomme ich aber 16 als Ergebnis. Meiner Meinung nach muss der Fehelr beim return irgendwo liegen.
06.07.2015 16:30
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Mache beim return das Plus zum Mal, dann passt es.

__________________
Syntax Highlighting fürs Board (Link)
06.07.2015 16:40 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Tina92
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich check's nicht; Das hatte ich gestern versucht, dann ging es nicht traurig

Eine Frage noch:

Ich habe zum Beispiel einen primitiven Datentypen float mit dem Namen gewicht = 5.2F und ein weiteres float gewicht2 = 2.4F;

Ich möchte beide Werte zurückgeben:

return gewicht + gewicht2 addiert mir aber die Werte. Wie schaffe ich es, dass mir beide Werte zurückgegeben werden ohne Addition?


Vielen Dank
06.07.2015 16:52
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Der übliche Weg wäre, zwei Funktionen getGewicht() und getGewicht2() zu schreiben. Wenn du wirklich mehrere Rückgabewerte haben willst, brauchst du irgendeine Form von Datensammlung (Array, eigene Klasse, ...), kannst das auch als object zurückgeben, wenn du willst.

__________________
Syntax Highlighting fürs Board (Link)
06.07.2015 17:05 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Tina92
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Alles klar, danke dir für deine Hilfe :-)
06.07.2015 17:16
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Sonstige Fragen » Rekursion - Return-Problem