Bennö Geschrieben 10. Mai 2011 Geschrieben 10. Mai 2011 Hallo die Damen und Herren, ich bin momentan am Programmieren eines Java Projektes innerhalb der Schule und möchte wissen ob es möglich istm innerhalb der switch-Anweisung bei case anstatt einer Zahl einen Buchstaben als Ausdruck nehmen zu können. Ich möchte ein Quiz über die Konsole realisieren und somit die möglichen Antworten mit a,b,c und d anstatt mit 1,2,3 und 4 als Ausdruck nehmen können. vielen Dank schonmal
flashpixx Geschrieben 10. Mai 2011 Geschrieben 10. Mai 2011 Nein switch funktioniert nur mit "numerischen" Datentypen. Man kann dieses Problem mit enums umgehen
Ezra Geschrieben 10. Mai 2011 Geschrieben 10. Mai 2011 Solange es nur chars sind, kein Problem (chars sind letztendlich auch numerisch, mit Strings geht das nicht). Aber warum probierst Du es nicht einfach aus? Dann kannst Du Dir das selbst beantworten: public static void main(String[] args) { char answer = 'a'; switch (answer) { case 'a': System.out.println("a"); break; case 'b': System.out.println("b"); break; default: System.out.println("nothing fits"); } }
Bennö Geschrieben 10. Mai 2011 Autor Geschrieben 10. Mai 2011 Vielen Dank schonmal soweit. Die beiden Vorschläge von euch sind schon recht informativ, doch habe ich ein Problem mit der Umsetzung. a=Integer.parseInt(br.readLine()); switch(a) { case 1: System.out.println("hallo...."); int ch,m,n,o,p,q,r,s,t; ch=Integer.parseInt(br.readLine()); switch(ch) { case States.a: System.out.println(name+" Verloren.. leider falsch ! "); System.exit(0); break; case States.b: System.out.println(""); break; case States.c: System.out.println(name+" Leider Verloren!"); break; case States.d: System.out.println(name+" Leider Verloren!"); System.exit(0); break; } m=Integer.parseInt(br.readLine()); switch(m) { case States.a: System.out.println(name+" Verloren.. leider falsch ! "); System.exit(0); break; case States.b: System.out.println(""); break; case States.c: System.out.println(name+" Leider Verloren!"); break; case States.d: System.out.println(name+" Leider Verloren!"); System.exit(0); break; }[/code] habe mich gerade damit versucht die strings in integer zu parsen. nur was ich nicht verstehe ist, wie ich es hinbekomme, dass er bei zB "m=Integer.parseInt(br.readLine());" einen String oder einen char erkennt und verarbeitet..
afo Geschrieben 10. Mai 2011 Geschrieben 10. Mai 2011 Nimm mal statt dem Buffered Reader die moderne Scanner Klasse. Der Buffered reader liefert dir alles möglich, beispielsweise beim nächsten Durchlauf das nächste Zeichen der vorherigen Eingabe, was ein Linefeed sein dürfte. Wenn ich das richtig im Kopf hab. Kann auch sein, dass ich grad Unsinn verzapfe und eh das alles mit deinem Problem nichts zu tun hat.
Ezra Geschrieben 10. Mai 2011 Geschrieben 10. Mai 2011 (bearbeitet) nur was ich nicht verstehe ist, wie ich es hinbekomme, dass er bei zB "m=Integer.parseInt(br.readLine());" einen String oder einen char erkennt und verarbeitet.. readLine liefert Dir einen String. Solange der String selbst nicht aus Zahlen besteht, kannst Du mit parseInt gar nichts produzieren außer Exceptions. Aber Du kannst beispielsweise chars aus dem String extrahieren, dafür gibt es die Methode charAt(int index). String hallo = "Hallo"; char h = hallo.charAt(0); h hat anschließend den Wert "H". Bearbeitet 10. Mai 2011 von Ezra
lilith2k3 Geschrieben 10. Mai 2011 Geschrieben 10. Mai 2011 Switch-Anweisungen sind des Teufels Vermeide Sie wo immer es geht. Kannst Du auch anders lösen, indem Du ein Objekt mit einem Dictionary im Hintergrund benutzt. An dieses Objekt schickst Du den zu evaluierenden Ausdruck und erhälst dann als Nachricht die Antwort, die Du benötigst.
Bennö Geschrieben 11. Mai 2011 Autor Geschrieben 11. Mai 2011 könnte jemand ezras vorschlag in meinen quellcode einbinden? ich verstehe es nicht ganz..
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden