Fehler bei Brutto Netto Rechner Java?
Könnte mir jemand Helfen?
Die Aufgabenstellung ist : Der Bruttolohn berechnet sich aus dem Stundenlohn multipliziert mit den Arbeitsstunden. Von dem berechneten Bruttolohn sind die Abzüge wie folgt zu berechnen: Bei einem Bruttolohn von unter 500€ sind 15%, bei einem Bruttolohn zwischen 500 und weniger als 1000€ sind 20% und bei einem Bruttolohn von 1000€ und mehr Euro sind Abzüge von 25% zu berechnen. Berechnen Sie den Nettolohn. Das Programm soll die Arbeitsstunden, den Stundenlohn, den Bruttolohn, die Abzüge, den Prozentsatz und den Nettolohn ausgebe
Mein Quellcode : import java.util.*; public class Nettolohnrechner {
/**
* @param args
*/
public static void main(String[] args) {
double Brutto = 0;
double Netto = 0;
int Stundenlohn = 0;
int Arbeitsstunden = 0;
Scanner eingabe = new Scanner(System.in);
System.out.println("Geben sie ihren Stundenlohn ein: ");
Stundenlohn = eingabe.nextInt();
System.out.println("Geben sie ihre Arbeitsstunden ein: ");
Arbeitsstunden = eingabe.nextInt();
Brutto = Stundenlohn * Arbeitsstunden;
if (Brutto < 500) {
Netto = Brutto * 100 / 15;
System.out.println("Ihr Netto beträgt:" + Brutto + "€");
}
else if (Brutto > 500 && < 1000) { // Hier ist ein Syntax Fehler
Netto = Brutto * 100 / 20;
System.out.println("Ihr Netto beträgt:" + Netto + "€");
}
else if (Brutto < 1000) {
Netto = Brutto * 100 / 25;
System.out.println("Ihr Netto beträgt:" + Netto + "€");
}
else {
System.out.println("Ihr Brutto beträgt:" + Brutto + "€");
}
System.out.println("Ihr Bruttolohn beträgt:" + Brutto + "€");
System.out.println("Ihr Stundenlohn beträgt:" + Stundenlohn + "€");
}
}
Ausgabe : Geben sie ihren Stundenlohn ein: 10
Geben sie ihre Arbeitsstunden ein: 25
Ihr Netto beträgt:250.0€
Ihr Bruttolohn beträgt:250.0€
Ihr Stundenlohn beträgt:10€
Nächste Frage ist warum er mir den Falschen Nettolohn ausgibt.
Vielen Dank.
2 Antworten
Wieso
&& < 1000) {
?
ich würde eine if else machen die anfangs prüft ob der wert kleiner als 500 ist:
beim 2 else einfach kleiner als 1000 und bei 3 else kleiner als 1500 und bei else 4 wenn der wert über 1500 übersteigt.
Der geht ja die reihenfolge ab und braucht deswegen keine extra bedingung.
Deine Frage ist sehr leicht zu beantworten. Bei unter 500 Euro Brutto gibst du folgendes aus.
System.out
.println("Ihr Netto beträgt:" + Brutto + "€");
... da müsste logischerweise netto stehen.
Die Rechnung mit *100/15 stimmt aber auch nicht. Da gibt es im wahrsten Sinne des Satzes "mehr Netto vom Brutto". Du müsstest *0.85 rechnen.
Zudem passen deine Bedingungen nicht. Was ist bei genau 500€ Brutto?
Zudem: Variablen klein schreiben.