Switch Anweisung Frage

Chizzo

Mitglied
Java:
package Test;

import javax.swing.JOptionPane;

enum Wochentag {Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag};

public class Tage {
	public static void main (String[] args) {
		
		String tagS = JOptionPane.showInputDialog("Bitte einen Wochentag eingeben");
		Wochentag tag = Wochentag.valueOf(tagS);
		
		switch (tag) {
		case Montag: case Dienstag: case Mittwoch: case Donnerstag: case Freitag:
			JOptionPane.showMessageDialog(null, "Heute ist ein Werktag. Geh arbeiten.");
		break;
		case Samstag: case Sonntag:
			JOptionPane.showMessageDialog(null, "Heute darfst du ausschlafen!!! :-)");
			break;
		default:
			JOptionPane.showMessageDialog(null, "Du sollst einen Wochentag angeben!!! :D");
			break;
		}
	}

}

Bei Montag - Sonntag kommt ein Fenster und gibt aus was es soll, allerdings bei default (also alles andere, oder??) kommt nichts... bzw im Eclipse nur ne Fehlermeldung... wo ist mein Fehler?
 
@jmarc
Das sind doch keine Strings?

@TO
Java:
Wochentag.valueOf(tagS);
Der Teil wirft dir ne Exception wenn du irgendwas eingibst das kein gültiger Enumwert ist.
 
Wie kann ich das denn jetzt lösen, dass bei jeder anderen Eingabe außer einem Wochentag die Ausgabe kommt "Bitte Wochentag eingeben" ??
 
Z.b. mit nem try - catch block um die valueOf Anweisung, bei ner Exception fragst du den User einfach nochmal ab. Solange bis er einen gültigen Wert eingibt.
Das wäre zumindest ne quick&dirty variante.
 
So könnte man das lösen:
Java:
enum Wochentag {
	Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag, Ungueltig
};

// ...

Wochentag tag = Wochentag.Ungueltig;
try {
	Wochentag.valueOf(tagS);
} catch (IllegalArgumentException iae) {}
 

Neue Themen


Zurück
Oben