Java: Return und For-Schleife?

...komplette Frage anzeigen

1 Antwort

Der Return ist ganz richtig platziert.

Das Problem ist eher, dass du sum am Beginn der Schleife 0 setzt. Das heißt, dass beim erneuten Aufruf der Schleife, die Summe zuerst 0 ist, und dann (wenn die if true zurück liefert – was sie in deinem Fall bei der letzten Division nicht tut – erneut aufsummiert.

Du müsstes sum sowieso vor der Schleife mit dem Variablen-Typ initialisiert haben. Wenn du dort int sum = 0; schreibst reicht das aus.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von PlayerPro
29.10.2015, 23:07

Danke, hat mir wirklich sehr geholfen :D Könnte ich vielleicht noch um einen Gefallen bitten?

1.)

private static long simpler(short n) {
int sum = 0;
int n2 = (int) n;
int j = n2 % 10;
int basis = 10;
int potenz = 1;
while (n2 > 0) {
j = n2 % 10;
while (j > 0) {
potenz = potenz * basis;
j = j - 1;
}
sum = sum + potenz;
n2 = n2 / 10;
}
long sum2 = (long) sum;
return sum2;

Hier habe ich eine Methode geschrieben, die jeder Ziffer einer Zahl (n) eine Zehnerpotenz zuweist (sprich: 0 => 0, 1 => 10, 2 = > 100 etc.) und diese dann aufadiert. Leider versuche ich schon seit längerer Zeit den Fehler zu finden und komme einfach nicht drauf -_- Irgendwas ist da schiefgelaufen :/

0

Was möchtest Du wissen?