Switch-Case || Problem...

berti99

Mitglied
Hallo...
ich bin in Java noch recht neu und hab da ein Problem mit einem switch case, in dem ich mehrere "oder" Möglichkeiten habe.....also hier erstmal der Code:

Java:
import java.util.Scanner;

/* Das Programm gibt nach einer Eingabe einer Monatszahl die entsprechende Jahreszeit wieder. Ist die Eingabe falsch,
 * wird eine Fehlermeldung ausgegeben.
 */
public class jahreszeiten {
	public static void main(String[]args){
		Scanner sc=new Scanner(System.in);
		int m=0;
		
		do{System.out.println("Geben Sie eine Monatszahl ein");
			m=sc.nextInt();
			}while(m<1||m>12);
		
		switch(m){
		case '1'||'2'||'12':
			System.out.println("Winter");
			break;
		case '3'||'4'||'5':
			System.out.println("Frühling");
			break;
		case '6'||'7'||'8':
			System.out.println("Sommer");
			break;
		case '9'||'10'||'11':
			System.out.println("Herbst");
			break;
		default
			System.out.println("Falsche Eingabe");
		}
	}
	
}

und die passende Fehlermeldung;
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Invalid character constant

at jahreszeiten.main(jahreszeiten.java:17)


In eclipse wird mir der bei dem ersten Case folgender Fehler bei der '12' angezeigt: "invalid character constant"

Ich habe die 12 dann mal auskommentiert, dann gibt es aber direkt ne Menge neuer Fehler in den diversen anderen Cases. Daher gehe ich davon aus, dass ich irgendwas komplett falsch mache.....ich wäre euch sehr dankbar wenn mir da einer helfen könnte! Danke!!!! :toll:
 

Schrubber

Bekanntes Mitglied
Java:
import java.util.Scanner;
 
public class jahreszeiten 
{
    public static void main(String[]args)
    {
        Scanner sc=new Scanner(System.in);
        int m=0;
        
        do{System.out.println("Geben Sie eine Monatszahl ein");
            m=sc.nextInt();
            }while(m<1||m>12);
        
        switch(m){
        case 1:
        case 2:
        case 12:
            System.out.println("Winter");
            break;
        case 3:
        case 4:
        case 5:
            System.out.println("Frühling");
            break;
        case 6:
        case 7:
        case 8:
        	System.out.println("Sommer");
            break;
        case 9:
        case 10:
        case 11:
            System.out.println("Herbst");
            break;
        default:
            System.out.println("Falsche Eingabe");
        }
    }
    
}

So funzt es bei mir :)
 

javimka

Top Contributor
//EDIT zu spät, aber vielleicht als Ergänzung hilfreich:

|| kannst du zwar bei if verwenden, aber nicht bei switch. Ein case kann den gegebenen Wert immer nur mit einem einzigen Wert aufs Mal vergleichen. Du musst für jeden char einen einzelnen case machen. Dabei kannst du aber jene, die zusammen gehören durchfallen lassen bis zu der Funktion, die zu der Gruppe gehört.

Der Compiler meckert nicht, wenn du statt || nur | verwendest. Das führt aber zu einem Trugschluss, denn | bezeichnet den binären OR-Operator. Statt der gegeben Wert mit '1' oder '2' zu vergleichen, wird '1'|'2' binär "verodert". Im Allgemeinen entsteht irgendeine(!) Zahl, die du sicher nicht haben willst.

Ausserdem ist '12' kein char, ein Char hat nur einen Buchstaben/Zahl/Zeichen.
 

berti99

Mitglied
Vielen Dank für die schnelle Lösung und vorallem auch für die Erläuterung des Fehlers!!!!

Was meint Ihr wie lange ich nach dem Fehler gesucht hab..... ;)

Vielen Dank!!! :toll::applaus:
 

berti99

Mitglied
Eine Frage hab ich dann doch noch.... :)

Ich hab doch die "default" Anweisung eingebaut, wenn ich aber zB 14 eintippe, gibt der mir nicht die Fehlermeldung von default, sondern fragt erneut nach dem Monat.

Wo müßte ich denn das default platzieren das er ganz raus geht und die Fehlermeldung ausgibt?
 

faetzminator

Gesperrter Benutzer
Du lässt nur 1 bis 12 zu:
Java:
do {
    System.out.println("Geben Sie eine Monatszahl ein");
    m = sc.nextInt();
} while( m < 1|| m > 12);
 

berti99

Mitglied
ach so.... das heißt ich frag so lange ab bis der mir was richtiges eintippt.....dann kann ich mir das default hier ja ganz sparen.

naja, wie schon erwähnt, ich mach das noch nicht so lang ;)

Vielen Dank! :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
F Switch Case Problem mit Regex lösen? Java Basics - Anfänger-Themen 6
D Klassen Problem bei switch-case? Java Basics - Anfänger-Themen 2
T kleines problem mit switch case Java Basics - Anfänger-Themen 11
F Ps to kW Konvertierer switch-case Problem Java Basics - Anfänger-Themen 4
A Switch-Case Problem Java Basics - Anfänger-Themen 17
C Switch / Case Problem, break funktioniert nicht! Java Basics - Anfänger-Themen 3
K Mehrere Werte in einem Switch Case parallel überprüfen Java Basics - Anfänger-Themen 5
D Switch Case Methode aufrufen Java Basics - Anfänger-Themen 3
L Switch-Case Multiplikation wird nicht ausgegeben Java Basics - Anfänger-Themen 1
P9cman Vokal Zähler mit switch case und for-Schleife Java Basics - Anfänger-Themen 4
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
1 Switch Case Java Basics - Anfänger-Themen 3
T Alternative für switch case Java Basics - Anfänger-Themen 1
W Taschenrechner mit Switch case Java Basics - Anfänger-Themen 4
B Notensystem Switch-Case Java Basics - Anfänger-Themen 31
S Switch-Case zur Berechnung der Einkommensteuer Java Basics - Anfänger-Themen 15
F Switch case wird als char nicht erkannt.... Java Basics - Anfänger-Themen 6
H Frage zur if-Bedingung bzw switch case Java Basics - Anfänger-Themen 6
S switch case fängt beim letzten case an Java Basics - Anfänger-Themen 6
W Wieso funktioniert mein Switch Case nicht ?! Java Basics - Anfänger-Themen 9
F Switch Case Modulo berechnen Java Basics - Anfänger-Themen 12
S Switch-Case für eine Array-Zuordnung Java Basics - Anfänger-Themen 5
S switch und case Java Basics - Anfänger-Themen 1
B Wiederholen einer if/switch-case Schleife Java Basics - Anfänger-Themen 9
X Nach switch case weiter mit Auswahl Java Basics - Anfänger-Themen 7
T switch case und continue Java Basics - Anfänger-Themen 5
D switch case Code Java Basics - Anfänger-Themen 3
F Erste Schritte Switch case vs. Verschachtelte If Anweisung Java Basics - Anfänger-Themen 11
K Variablen RETURN in Case-Switch / This method must return a result of type Item Java Basics - Anfänger-Themen 4
R Switch: Nach durchlaufen des Case wieder zum Menü Java Basics - Anfänger-Themen 3
A Switch Case Java Basics - Anfänger-Themen 5
T Erste Schritte switch case Anweisung und if else Verzweigungen? Java Basics - Anfänger-Themen 6
A ArrayList-iteration mit Prüfung auf instanceof durch switch case? Java Basics - Anfänger-Themen 13
P Switch Case - Fließkommazahl Java Basics - Anfänger-Themen 2
lulas[]args Switch Schleife - orphaned case Java Basics - Anfänger-Themen 27
R Switch/Case frage: Java Basics - Anfänger-Themen 12
K Input/Output switch case - Parameterübergabe args[0] Java Basics - Anfänger-Themen 34
P Compilerfehler bei switch-case Java Basics - Anfänger-Themen 18
D Switch und Case Java Basics - Anfänger-Themen 3
Q switch case hier möglich Java Basics - Anfänger-Themen 10
A Do While mit Switch Case Java Basics - Anfänger-Themen 2
R Switch-Case Selektion Java Basics - Anfänger-Themen 13
O Switch-Case - Case 4 erhöhen Java Basics - Anfänger-Themen 9
M Frage zu Mehrfachauswahl mit switch ... case Java Basics - Anfänger-Themen 3
R Umlaute mit Switch-Case tauschen Java Basics - Anfänger-Themen 26
J switch-case Java Basics - Anfänger-Themen 19
G Switch-Case harmoniert nicht mit Random-Zahl Java Basics - Anfänger-Themen 3
I If abfrage in switch case einbauen Java Basics - Anfänger-Themen 5
R Erlaubte Selektoren bei Switch-Case Java Basics - Anfänger-Themen 2
Silas89 String in switch - case Java Basics - Anfänger-Themen 19
G Switch Case Java Basics - Anfänger-Themen 8
G zu blöd für switch case? Java Basics - Anfänger-Themen 6
G switch-case mit Strings Java Basics - Anfänger-Themen 7
T Switch Case Java Basics - Anfänger-Themen 6
A Aus switch case an den Anfang? Java Basics - Anfänger-Themen 7
P switch-case Konstrukt auch mit case i < 6: s = 6 ? Java Basics - Anfänger-Themen 10
G switch-case mit Fehler auf return-Wert-Typ Java Basics - Anfänger-Themen 2
S Zählen mit switch case Java Basics - Anfänger-Themen 8
J Aufgabe mit Arrays, Schleifen & Switch/Case Java Basics - Anfänger-Themen 7
M switch-case und array Java Basics - Anfänger-Themen 3
C switch-case mit bedingungen? Java Basics - Anfänger-Themen 5
J Switch Anweisung: Case "Wert1" bis "Wert2&quo Java Basics - Anfänger-Themen 2
D switch case must be constant expression Java Basics - Anfänger-Themen 7
A Switch Case Java Basics - Anfänger-Themen 4
G Mit Switch/Case Zahlen zu Array hinzufügen Java Basics - Anfänger-Themen 14
M HILFE bei switch & case Java Basics - Anfänger-Themen 15
A switch case mit einem String Java Basics - Anfänger-Themen 4
M switch case Java Basics - Anfänger-Themen 5
_so_far_away_ Inventarisierungssystem brauche switch Cases und weiß nicht, wie ich e implementieren muss Java Basics - Anfänger-Themen 5
M error: '.class' expected switch(char) Java Basics - Anfänger-Themen 32
A switch statement Java Basics - Anfänger-Themen 4
volcanos enum und switch (neu): falschen Wert mit IllegalArgumentException oder mit EnumConstantNotPresentException abfangen ? Java Basics - Anfänger-Themen 51
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
Lion.King switch-Befehl Java Basics - Anfänger-Themen 6
U Warum kann ich die Methode in der ENUM Klasse nicht aufrufen? Und warum geht die Switch nicht? Java Basics - Anfänger-Themen 8
U Warum gibt das eine Nullpointerexception? (Switch) Java Basics - Anfänger-Themen 6
C if-Konstrukt durch switch-Konstrukt ersetzen Java Basics - Anfänger-Themen 14
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
V Switch Methode macht Code kaputt Java Basics - Anfänger-Themen 18
J Parameterübergabe in switch? Java Basics - Anfänger-Themen 2
M Switch Java Basics - Anfänger-Themen 2
F Erste Schritte Frage zu simplem Taschenrechner(switch) Java Basics - Anfänger-Themen 16
NoMercy BitFlags Programm (switch on/off , swap und isSet) Java Basics - Anfänger-Themen 7
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
B Problem bei switch statement Java Basics - Anfänger-Themen 4
E Input/Output Switch ausgabe anpassen bzw. anders darstellen Java Basics - Anfänger-Themen 13
A Warum funktioniert switch aber nicht if/else? Java Basics - Anfänger-Themen 23
K Erste Schritte switch - Warum sind long/float/double/... nicht erlaubt? Java Basics - Anfänger-Themen 5
Ponychan95 Erste Schritte Switch fällt immer bis zum default durch Java Basics - Anfänger-Themen 4
P Bei Switch-Anweisung wird default-Anweisung angezeigt Java Basics - Anfänger-Themen 4
D kleiner Taschenrechner mit switch fehlerhaft Java Basics - Anfänger-Themen 1
O This in switch anweisung Java Basics - Anfänger-Themen 5
V Fehlerhafte BufferedReader/switch Benutzung? Java Basics - Anfänger-Themen 2
R Methoden Switch wählt das Falsche Java Basics - Anfänger-Themen 17
B Erste Schritte Addition von double in switch-Anweisung Java Basics - Anfänger-Themen 2
M Endlosschleife bricht durch switch ab Java Basics - Anfänger-Themen 17
D Array in switch Java Basics - Anfänger-Themen 3
Devil0s if vs. switch Java Basics - Anfänger-Themen 27
F Reset in der switch Anweisung Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben