Ich habe da ein Problem und zwar habe ich eine Aufgabe von meinem Lehrer bekommen die ich bearbeiten muss und habe sie auch bis jetzt so gut wie möglich gelöst und bin schon fast am Ziel leider nur fast.Ich habe das Problem das sich das Fenster schließt wenn eigentlich das Ergebnis der Rechnungen da stehen soll. Das ist bis jetzt das geschriebene in der java Datei:
import javax.swing.JOptionPane;
public class BruttoVKPreisBerechnen {
public static void main(String[] args) {
String eingabe, ausgabe;
int anzahl;
double nEinzelpreis,Gesamtpreis,MWST,MWSTBetrag,BruttoVKPreis;
eingabe = JOptionPane.showInputDialog("Geben Sie die Artikelzahl ein: ");
anzahl = Integer.parseInt(eingabe);
eingabe = JOptionPane.showInputDialog("Geben Sie den Nettoeinzelpreis ein: ");
nEinzelpreis = Double.parseDouble(eingabe);
Gesamtpreis =nEinzelpreis*anzahl;
switch ("Warengruppe") {
case "Warengruppe1" : MWST =3.5;
case "Warengruppe2" : MWST =7.0;
case "Warengruppe3" : MWST =10.5;
case "Warengruppe4" : MWST =19.0;
BruttoVKPreis=Gesamtpreis*MWST;
MWSTBetrag=BruttoVKPreis-Gesamtpreis;
JOptionPane.showMessageDialog(
null,"Nettoeinzelpreis: " + nEinzelpreis
+"Gesamtpreis: " + Gesamtpreis
+"Mehrwertsteuersatz: " + MWST
+"Mehrwersteuerbetrag: " + MWSTBetrag
+"Bruttobetrag: " + BruttoVKPreis +'\u00b2');
}
}
}
Nicht wundern bin noch ein blutiger Anfänger und sehe da einfach nicht was das Problem ist warum das Ergebnis nicht angezeigt wird.
Freue mich auf eine Antwort und möglicherweise ein paar hilfreiche Tipps die einem Anfänger helfen könnten
Mal die minimalen Änderung, um das lauffähig und halbwegs standardkonform (Variablen erst deklarieren, wenn man sie braucht, Variablen immer klein…) zu bekommen. Als Bonus noch der Trick, wie man Dialogausgaben mehrzeilig bekommt…
import javax.swing.*;
public class BruttoVKPreisBerechnen {
public static void main(String[] args) {
String eingabe = JOptionPane.showInputDialog("Geben Sie die Artikelzahl ein: ");
int anzahl = Integer.parseInt(eingabe);
eingabe = JOptionPane.showInputDialog("Geben Sie den Nettoeinzelpreis ein: ");
double einzelpreis = Double.parseDouble(eingabe);
eingabe = JOptionPane.showInputDialog("Geben Sie die Warengruppe [1..4] ein: ");
int warengruppe = Integer.parseInt(eingabe);
double gesamtpreis = einzelpreis * anzahl;
double mwst = 0.0;
switch (warengruppe) {
case 1:
mwst = 3.5;
break;
case 2:
mwst = 7.0;
break;
case 3:
mwst = 10.5;
break;
case 4:
mwst = 19.0;
break;
}
double mwstBetrag = gesamtpreis * mwst / 100.0;
double bruttoVKPreis = gesamtpreis + mwstBetrag;
JOptionPane.showMessageDialog(
null, "<html>Nettoeinzelpreis: " + einzelpreis
+ "<br>Gesamtpreis: " + gesamtpreis
+ "<br>Mehrwertsteuersatz: " + mwst
+ "<br>Mehrwersteuerbetrag: " + mwstBetrag
+ "<br>Bruttobetrag: " + bruttoVKPreis + "€</html>");
}
}
Dankeschön leute für die schnelle Antwort:) Werde mir das alles nochmal inruhe durchlesen wenn ich wieder Internet an meinem Computer habe muss vom Handy aus schreiben… da kann ich wenigstens auch die Sachen ausprobieren und dadurch lernen
Wenn man den MwSt-Betrag sowieso separat ausweisen muss, spielt das wirklich keine Rolle. 1.19 spiegelt eher die technische Sicht, 19.0 eher die fachliche Sicht (der üblichen Prozentangabe) wider.
Ich habe mir angewöhnt, die Multiplikationen nach vorne und die Divisionen nach hinten zu nehmen, weil a / b * c als a / (b * c) aufgefasst werden könnte, und das ist dann wirklich falsch.