constant expression required

z.B.

Mitglied
Fehlermeldungen:
Code:
Compiliere C:\Users\f\Documents\Java\Übung18Arbeit.java mit Java-Compiler
Übung18Arbeit.java:20:10: error: incompatible types: possible lossy conversion from double to int
  switch (E) {
  ^
Übung18Arbeit.java:21:11: error: constant expression required
  case E<=500:
  ^
Übung18Arbeit.java:27:19: error: constant expression required
  case E>=500.01&& E <= 2000:
  ^
Übung18Arbeit.java:30:12: error: constant expression required
  case E >=2000.01:
  ^
4 errors
Habe versucht ein Programm zu schreiben welches nach eingegebenen Preis den Rabatt und endpreis berechnet. Das Problem sind jetzt die Fehler, was hab ich flsch gemacht?
Anmerkung: Das ich nicht in der main schreibe ist vollkommen beabsichtigt.
Java:
import java.util.*;
public class Übung18Arbeit {
  public Übung18Arbeit() { 
  Scanner sc = new Scanner (System.in);
  double E;
  double R;
  double B;
  double z;
  int i = 1;
  while (i <= 1) {
  System.out.println("Geben Sie den Einkaufswert ein");
  E = sc.nextDouble();
  switch (E) {
  case E<=500:
  R = 5;
  z = E/100*5;
  B = E-z;
  System.out.println("Der Einkaufswert war: "+E+"Euro Der Rabatt: "+R+"% Zu zahlen ist noch: "+B);
  break;
  case E>=500.01&& E <= 2000:
  R = 10;
  break;
  case E >=2000.01:
  R = 15;
  break; 
  default:
  System.out.println("Error, Erneut versuchen dan drücken sie die 1, sonst die 0");
  i = sc.nextInt(); 
  } // end of switch
 
  } // end of while
  }
  public static void main(String[] args) {
  new Übung18Arbeit(); 
  } // end of main

} // end of class Übung18Arbeit
 
Zuletzt bearbeitet von einem Moderator:
Man kann switch nicht auf double anwenden. Außerdem kannst du mit case keine Bedingungen wie bei if prüfen, sondern nur konkrete Werte der Abfragevariablen. Hier steht Näheres dazu.
 
Moin,
Mach ich gerne.
Wie soll ich es machen? Ivcch verstehe nicht ganz was gemeint ist.
Weißt Du nicht, was Du posten sollst oder wie Du sinnvoll formatierst ?? 😱

Rück' mal vernünftig ein, speziell die Klammerung, auch ruhig mal eine Leerzeile zwischendurch !!
Sowas geht IMHO gar nicht:
Java:
  i = sc.nextInt();
  } // end of switch
  } // end of while
  }
Wenn Dein Projekt größer wird, blickst Du selbst schnell mich mehr durch !!
Es gibt jede menge Java Style Guides im Web, etwa: http://www.torsten-horn.de/techdocs/java-codingconventions.htm

Gruß Klaus
 

Zurück
Oben