Switch-Case Selektion

Status
Nicht offen für weitere Antworten.

'ricky'

Mitglied
Hallo Java Forum ^^
Ich bin ein Neuling und muss mich da erstmal reinfuchsen.

Und zwar gehts um eine Steuurerklärung.
Der Betrag der zu zahlenden Steuern richtet sich ja nachdem Einkommen.
Man könnte es in Klassen unterteilen, da bietet es sich doch an.
Java:
public class Steuer {

       public static void main(String[] args) {

       double x, y, z, steuer;

       x=x;
       y = x / 10000;
       z = x / 10000;

       switch (x) {
               case 1: if (x<=7834)
                       steuer = 0;
                       break;

               case 2: if (7835<=x<=13319)
                       steuer = (939,68*y + 1400)*y;
                       break;

               ....

               case 5: if (x>= 250401)
                       steuer = (0,45*x + 15576);
                       break;
}
                  
                  System.out.println (+steuer+);

       }
}

I glaub, ich hab was generelles falsch gemacht, weil es in dem case ist...aber was?;(
 
Zuletzt bearbeitet:
achso...die variablen....
das x ist das jährliche einkommen. da sgibt man also dann ein.

nu bin ich ganz durcheinander.

Java:
switch (x) {
               case (x<=7834) : if     steuer = 0;
                       break;
so?
 
Irgendwie mus ich dem Programm sagen, dass die Zahl, die ich da eingebe, das jährliche EInkommen ist, also x. nicht? :rtfm:;(

"wo" gibst du denn "was" ein?

zweitens: du schreibst double x; <-- du deklarierst also nur, initialisierst garnicht. aber selbst wenn du
sowas hättest:
double x= 5;
x=x; <-- bringt das nichts

desweiteren, nochmal zum thema switch case:

- double im switch case --> geht nicht
- in deinem fall anscheinend auch garnicht notwendig..schreib ganz normale if abfragen
 
"wo" gibst du denn "was" ein?

in den unix terminal
also

javac Steuer.java
java Steuer 100000

Dann soll als Ergebnis die zu zahlenden Steuern rauskommen.

10000 Euro oder so.

eig nur ne zu lösende gleichung, nur das eben je nach nach einkommen, eine andere gleicung genommen werden muss 🙁

Dann versuch ich es mal mit der If-Abfrage.
 
Java:
public class Steuer {
    
    public static void main(String[] a) {
        
        double einkommen = Double.parseDouble(a[0]);
        double x = Math.floor(einkommen);
        double y = (Math.floor(einkommen) - 7834) / 10000;
        double z = (Math.floor(einkommen) - 13139) / 10000;
        double steuer = 0,
             
 
 
                if (einkommen <= 7834 && einkommen >= 0) {
            steuer = 0;
        }
 
            else if (einkommen > 7834 && einkommen <= 13139) {
                steuer = (939.68 * y + 1400) * y;
            }
 
            else if (einkommen > 13139 && einkommen <= 52551) {
                steuer = (228.74 * z + 2397) * z + 1007;
            }


....

So?
Und wieso konnte ich hier kein Switch.Case nehmen?
Das habe ich noch nicht richtig verstanden 🙁
 
also imo ist die erste abfrage garnicht nötig, da du, wenn die zutrifft, eh nichts setzt, ausser steuer = 0 (die ja aber sowieso schon 0 ist ;D)

wieso switch-case nicht geht(siehe Leroy42) + :
http://openbook.galileodesign.de/javainsel7/javainsel_02_005.htm#mj891237c2e381f1b5a774c1d94165315f hat gesagt.:
Eine Einschränkung der switch-Anweisung besteht darin, dass die Ausdrücke auf den primitiven Datentyp int beschränkt sind. (Elemente vom Datentyp byte, char und short sind auch erlaubt, da der Compiler den Typ automatisch auf int anpasst.
mehr dazu steht aber auch im oben verlinkten onlinebook 🙂
 
Ja, aber was bringen dir die Variablen y und z?



Weil swich-case Konstrukte nur auf festen Werten funktionieren; nicht auf Bereiche.

x und y sind bestandteil der gleichungen, mitdenen ich den steueranteil des einkommens ausrechne.
danke leroe, verstanden xD

und natürlich auch era
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.

Zurück
Oben