Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo
Ich hab dieses Programm geschrieben und das Programm soll nicht nach jeder Lohnabrechnung neu gestartet werden müssen.
Es soll nach der 1. Lohnabrechnung nachfragen, ob noch eine weitere Lohnabrechnung folgt oder nicht.
Ich weiß, dass man die Befehle von vorhint kopieren muss.
Nur weiß ich nicht welche Befehle ich kopieren muss und ab welche Stelle ich sie einfügen muss.
Es sollte außerdem if else Befehl bleiben. Also ich will noch keine while Schleifen benutzen.
Ich bin dankbar für jede Hilfe.
Java:
package lohnabrechnung;
import java.io.*;
public class Main
{
public static void main(String[] args) throws IOException
{
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
String inData;
double a, basislohn, w, wplus, extralohn;
System.out.print("Arbeitszeit? ");
inData = stdin.readLine();
a = Double.parseDouble(inData);
System.out.print("davon Wochende? ");
inData = stdin.readLine();
w = Double.parseDouble(inData);
extralohn = Double.parseDouble(inData);
basislohn = 175*12;
wplus = w*12*0.5;
if (a == 175)
{
extralohn = 0;
}
else
if (a <= 200)
{
extralohn = (a-175)*12*1.1;
}
else
{
extralohn = 25*12*1.1+(a-200)*12*1.25;
}
System.out.println();
System.out.println("Lohn: " + (basislohn+wplus+extralohn));
}
}
Das mag zwar stimmen.
Nur wäre mir if else lieber, weil ich hab noch nicht mit while Schleifen gearbeitet
Falls aber keiner damit was anfangen kann könntet ihr mir auch eine while Schleifen anbieten?
Naja in der Konsole.
Also genauso wie du die Zahlen abfragst, wirst du doch auch einen String abfragen können ?
Dieser Sting könnte dann z.B. eingabeString heißen, so wie in meinem Codefetzen.
Sry, wenn ich so dumm frage aber könntest du es mir vlt anschaulicher machen?
Ich hab das so gemacht wie du es mir gesagt hast aber Netbeans unterstreicht den eingabeString rot an obwohl ich ihn als String deklariert hab.
Soll die Frage hinter System.out.println("Lohn: " + (basislohn+wplus+extralohn)); stehen?
Du solltest deinen "normalen" Code in eine andere Methode auslagern. Zudem habe ich noch ein paar Änderungen vorgenommen:
- Code formatiert
- Variablen müssen in Java nicht am Anfang des Blocks deklariert werden
- [c]w[/c] und [c]extralohn[/c] hatten den gleichen Wert - [c]w[/c] gibts nun nicht mehr
- [c]if (a == 175)[/c] sollte wohl eher [c]if (a <= 175)[/c] heissen?
Java:
package lohnabrechnung;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
boolean isFinished;
do {
calculateFee(stdin);
isFinished = "q".equals(stdin.readLine());
}
while (!isFinished);
}
protected static void calculateFee(BufferedReader reader) throws IOException {
System.out.print("Arbeitszeit? ");
double a = Double.parseDouble(reader.readLine());
System.out.print("davon Wochende? ");
double extralohn = Double.parseDouble(reader.readLine());
double basislohn = 175 * 12;
double wplus = extralohn * 12 * 0.5;
if (a <= 175) {
extralohn = 0;
}
else if (a <= 200) {
extralohn = (a - 175) * 12 * 1.1;
}
else {
extralohn = 25 * 12 * 1.1 + (a - 200) * 12 * 1.25;
}
System.out.println();
System.out.println("Lohn: " + (basislohn + wplus + extralohn));
}
}