Erkennt mein return satement nicht?

... komplette Frage anzeigen

3 Antworten

Das nicht erkannte return-Statement:

Die Variable reverse wird innerhalb eines Blocks erstellt, ist somit nur in diesem Block sichtbar. Sobald der Programmfluss den Block (also die Schleife) betritt, erstellt er die Variable an gegebener Stelle und löscht sie auch gleich wieder, sobald die Iteration beendet wurde.

Du musst die Variable also genauso global machen, wie Merkzahl oder Restwert.

Weitere Anmerkungen:

  • Die Variable Binärzahl hat den gleichen Namen wie eine Methode. Vermeide das.
  • Halte dich auch weiterhin an Namenskonventionen: Keine Umlaute und beginnende Kleinschreibung bei Variablen- und Methodennamen.
  • Benenne stringent. Momentan hast du ein Gemisch aus englischen und deutschen Namen.
Antwort bewerten Vielen Dank für Deine Bewertung

Du weißt schon, dass die Deklaration von Variablen (z.B. String reverse ...) außerhalb des Codeblocks "{..}" nicht mehr bekannt ist?

Es wäre einfacher, einen String "result" zu deklarieren, dem jeweils eine Ziffer hinzugefügt wird:

result = (Restwert == 0? "0" : "1") + result;

Antwort bewerten Vielen Dank für Deine Bewertung

String reverse ist in einem Block reserviert und wurde zum Zeitpunkt des returns, das außerhalb des Blocks steht, schon weggeschmissen. Was in einem Block definiert wird, bleibt in einem Block, wenn es nicht aus dem Block heraustransportiert wird. Es gibt noch mehr Fehler, aber die sind nicht erfragt.

Antwort bewerten Vielen Dank für Deine Bewertung