Hilfe bei Implementierung einer boolean Methode

v1c0

Mitglied
Bildschirmfoto 2022-04-29 um 15.08.58.pngBildschirmfoto 2022-04-29 um 15.08.47.png
Wieso funktioniert die Implementierung nicht? sitze jetzt seit Stunden und verstehe es einfach nicht! Bitte um Hilfe! Danke im Voraus
 
PS: Bitte Code nicht als Screenshot.

Die Methode liefert (fast) immer false.

Dein Problem ist, den rekursiver Aufruf von hasNOrderedPairs kannst du auch entfernen. Der macht genau gar nichts. Dein Code sieht im Prinzip wie folgt aus:

Java:
int counter=0;
if (text.length(()>1) {
if (....) {
n--;
}
if (counter == n) {
return true;
} else {
return false;
}

Das wird in den seltestenten Fälle was sinnvolles zurückgeben.

Du machst mit der Rückgabe des rekursiven Aufrufes nichts. Mit der musst du sinnvollerweise was tun. Kleiner Tipp: Wenn da true kommt, was willst du dann zurückliefern? Und was bei false?
 
PS: Bitte Code nicht als Screenshot.

Die Methode liefert (fast) immer false.

Dein Problem ist, den rekursiver Aufruf von hasNOrderedPairs kannst du auch entfernen. Der macht genau gar nichts. Dein Code sieht im Prinzip wie folgt aus:

Java:
int counter=0;
if (text.length(()>1) {
if (....) {
n--;
}
if (counter == n) {
return true;
} else {
return false;
}

Das wird in den seltestenten Fälle was sinnvolles zurückgeben.

Du machst mit der Rückgabe des rekursiven Aufrufes nichts. Mit der musst du sinnvollerweise was tun. Kleiner Tipp: Wenn da true kommt, was willst du dann zurückliefern? Und was bei false?
OK! Werde ich nicht mehr machen!
Laut angäbe müssen wir die Methode allerdings rekursiv gestalten. Und naja, bei true, soll bei der Konsole true ausgegeben werden und bei false false haha sorry ich musss einen fetten Hänger in meinem denken haben
 
Java:
 private static boolean hasNOrderedPairs(String text, int n, int index) {
        // TODO: Implementieren Sie hier Ihre Lösung für die Methode
        int counter = 0;
        if (index < text.length() - 1) {
            if (text.charAt(index) <= text.charAt(index + 1)) {
                n--;
            }  hasNOrderedPairs(text, n, index+1);
        }

        if (counter == n)
            return true;


        else
            return false;
    }

Habe es nun so versucht. jetzt gibt er mir zwar auf der Konsole was aus, aber nicht das richtige 😅
 
problem gelöst, code sieht nun so aus:
Java:
 private static boolean hasNOrderedPairs(String text, int n, int index) {
        // TODO: Implementieren Sie hier Ihre Lösung für die Methode
        int counter = 0;
        if (index < text.length() - 1) {
            if (text.charAt(index) <= text.charAt(index + 1)) {
                n--;
            }  return hasNOrderedPairs(text, n, index+1);
        }

        if (counter == n)
            return true;


        else
            return false;
    }

Das return vor dem rekursiven Aufruf hat gefehlt. Nun stellt sich mir jedoch die Frage: Wieso genau brauche ich das??
 

Neue Themen


Zurück
Oben