Wo ist der Fehler bei meinem Java-Quellcode?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Als erstes ist die folgende Abfrage + Zusweisung überflüssig:

if (betrag < 5000)
{
   ss=0;
}

Ansonsten hast du einen Datentyp gewählt, der ganzzahlige Werte enthalten kann. Was hier passiert ist folgendes: du hast die Variable "ss" (in Deutschland übrigens eine schlechte Bezeichnung für alles) vom Typ "int", die maximal "20" sein kann. Diese dividierst du durch "100". Da du "int" also einen ganzzahligen Datentyp genommen hast, wird auch eine ganzzahlige Division durchgeführt. D.h. 20 / 100 = 0,2 - da das Ergebnis eine ganze Zahl sein muss, wird alles nach dem Komma abgeschnitten. Ergo wird auf die Variable "zs" immer "0" geschrieben und dann ausgegeben.

Du solltest einfach den Datentyp deiner Variablen "ss" und "zs" gegen einen Datentyp für Fließkommazahlen austauschen. Das sind in Java z.B. "float" oder "double".

Das war die Lösung, vielen Dank! :D

Die einzige Möglichkeit, dass die Variable "Betrag" 0 ist, ist das du beim Funktionsaufruf als Parameter 0 eingegeben hast.

du hast 

int betrag
kein wert gegeben

Das soll ja auch der Benutzer des Progammes machen und so weit ist es auch noch richtig, das Problem ist nur, dass das was damit dann weiter gerechnet werden soll dann nicht mehr stimmt. Also das +betrag+ stimmt noch, aber das folgende nicht mehr.

@BopmitP

trotzdem du musst ein Initial wert geben

hab lange kein Java mehr gemacht... aber fehlt da nicht ein "main"?

Was möchtest Du wissen?