Java: switch mit char als Datentyp

fanti

Cadet 4th Year
Registriert
Aug. 2009
Beiträge
119
Hallo Forum,
ich bin ein Neuling in sachen Programmierung und drohe an etwas scheinbar simplen zu scheitern. Es wäre nett wenn mir jemand hilft.

So sieht es zur Zeit aus:
String str;
char n;
BufferedReader eingabe = new BufferedReader(
new InputStreamReader(System.in));
System.out.println("Berechnung der Oberfläche und des Volumens von Körpern:");
System.out.println("Was möchten Sie berechnen?\r\n");
System.out.println("a ==>> Zylinder \r\nb ==>> Würfel\r\nc ==>> Quader\r\nd ==>> Kreiskegel\r\ne ==>> Kugel\r\n");
System.out.print("Treffen Sie eine Auswahl: ");
str = eingabe.readLine();


n = str.charAt(0);

switch (n)
{
case a: System.out.println("sehr gut");break;
case b: System.out.println("gut");break;
case c: System.out.println("befriedigend");break;
case d: System.out.println("ausreichend");break;
case e: System.out.println("mangelhaft");break;
default: System.out.println("Fehler");
}

Folgendes soll sein: Ich soll eine Auswahl zwischen a,b,c,d oder e treffen. Dieser Buchstabe wird per Tastatur eingegeben (wir nehmen mal a als Eingabe) und als String eingelesen.

Nun weise ich mit der Zeile n = str.charAt(0) der Variablen n den Wert a zu.

In meiner Switch Bedingung sollte doch nun der Fall a eintreten und die Textausgabe erfolgen. Aber genau das funtioniert nicht.
Was mache ich falsch?

Ich danke schonmal im voraus.
 
Zeichenketten werden intern als Arrays verarbeitet und es wird auch nur der ASCII-Wert gespeichert.
Darum musst du die Zeichenkette in Anführungszeichen setzen.
Ich weiß jetzt nicht, wie die Syntax von Java aussieht aber es müsste entweder
case 'a' ... oder case "a" ... (das selbe gilt für die anderen Buchstaben)
heißen.
 
da du ein zeichen verlgeichst muss es ' sein, z.b. 'a'. würdest du nen ganzen string als case kriterium nehmen wäre es ", z.b. "alpha". (ich glaube java erlaubt switch anweisungen acuh mti strings).
 
Danke habt mir sehr geholfen.

@Whiz-zarD: Die Syntax ist 'a' wie Dese es auch beschreibt.


Nochmals danke, jetzt kann ich weitermachen. MfG fanti.:daumen:
 
Zurück
Oben