11. Vergleich der Syntax von Konstruktoren und normalen Methoden

Submitted by javafrage on Tue, 09/09/2014 - 09:00

Wie unterscheidet sich die Syntax eines Konstruktorkopf vom Kopf einer normalen Methode?

Niveau 1
Schwierigkeitsgrad mittel
Zeit 2 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 10: Transformation einer rekursiven Methode in eine iterative Methode

     /**
     * Diese Methode berechnet die Quersumme der Eingabe iterativ
     *
     * @param eing : Eingabewert
     * @return a Ergebnis ist die ?
     */
    static private int berechne(int eing) {
       int a = 0;
       while (eing != 0) {
          a = a+ eing%10;
          eing/= 10; 
       }
       return a;
    }
 

 

Anonymous (not verified)

Wed, 12/17/2014 - 23:46

Ist Ihnen in der while Schleife nicht einiges durcheinander geraten? Warum soll a+eing%10 auf a zugewiesen werden? Das a hat zu diesem Zeitpunkt doch keinen Wert, also bringt es nichts, es zu addieren oder?
der Befehl danach: eing/=10; scheint mir genauso fragwürdig zu sein. Er ändert ja nichts an a und schließlich wird ja a zurück gegeben. Ich bezweifle, dass diese Methode die gleichen Ergebnisse liefert. Müsste es nicht so sein?
while (eing > 0) {
a=eing%10;
a=a+eing/10;
}
return a;
}
Gruß von einem Studenten der sein Leben in Bezug auf Java nicht im Griff hat (hoffentlich hatte).

Stefan Schneider

Thu, 12/18/2014 - 09:08

In reply to by Anonymous (not verified)

Willkommen im Club derer die Java nicht voll im Griff haben. Ich hatte auch schon Meetings mit Spec. Leads von Java die nicht mehr weiter wussten. Das geht uns allen so.

Der Befehl

eing/=10;

macht das gleiche wie der Befehl

eing = eing/10;

damit funktioniert das hoffentlich

Anonymous (not verified)

Mon, 12/21/2015 - 10:30

Bei der rekursiven Methode muss doch der Wert von eing nicht unbedingt über 0 sein, er darf doch lediglich nicht 0 sein.
Bei der iterativen Methode werden von while(eing>0) aber doch alle negativen Werte ausgeschlossen.