Bennö Geschrieben 10. Mai 2011 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 10. Mai 2011 Teilen Geschrieben 10. Mai 2011 Nein switch funktioniert nur mit "numerischen" Datentypen. Man kann dieses Problem mit enums umgehen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ezra Geschrieben 10. Mai 2011 Teilen 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"); } } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bennö Geschrieben 10. Mai 2011 Autor Teilen 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.. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
afo Geschrieben 10. Mai 2011 Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ezra Geschrieben 10. Mai 2011 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lilith2k3 Geschrieben 10. Mai 2011 Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
itazubi Geschrieben 11. Mai 2011 Teilen Geschrieben 11. Mai 2011 hättest du ein Beispiel für so ein Objekt? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bennö Geschrieben 11. Mai 2011 Autor Teilen Geschrieben 11. Mai 2011 könnte jemand ezras vorschlag in meinen quellcode einbinden? ich verstehe es nicht ganz.. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.