Eingabe des Taschenrechners mit char

Ich hab ein kleines Problem bei der Eingabe des Rechenoperators und zwar folgende Fehlermeldung:
[SPOILER]

Geben Sie die erste Zahl an mit der Sie rechnen wollen
5
Geben Sie die zweite Zahl an mit der Sie rechnen wollen
5
Welche Rechenoption wollen sie wählen?: 
+
Exception in thread "main" java.util.InputMismatchException
	at java.util.Scanner.throwFor(Unknown Source)
	at java.util.Scanner.next(Unknown Source)
	at java.util.Scanner.nextInt(Unknown Source)
	at java.util.Scanner.nextInt(Unknown Source)
	at Taschenrechner.main(Taschenrechner.java:18)

[/SPOILER]

und mein Code dazu:



public class Taschenrechner 
{
	public static void main (String args[])
	{
		Scanner s = new Scanner(System.in);
		
		int Zahl1, Zahl2, Ergebnis;
		char Operator;
		
		System.out.println("Geben Sie die erste Zahl an mit der Sie rechnen wollen");
		Zahl1 = s.nextInt();
		System.out.println("Geben Sie die zweite Zahl an mit der Sie rechnen wollen");
		Zahl2 = s.nextInt();
		System.out.println("Welche Rechenoption wollen sie wählen?: ");
		Operator = (char) s.nextInt();
		
		switch(Operator)
		{
			case '+':
				System.out.println("Ihr Ergebnis: " + addiere(Zahl1, Zahl2));
				break;
			case '-':
				System.out.println("Ihr Ergebnis: " + subtrahiere(Zahl1, Zahl2));
				break;
			case '*':
				System.out.println("Ihr Ergebnis: " + multipliziere(Zahl1, Zahl2));
				break;
			case '/':
				System.out.println("Ihr Ergebnis: " + dividiere(Zahl1, Zahl2));
				break;
		}
	}
	
	public static int addiere(int Zahl1, int Zahl2)
	{
		int Zahl3 = Zahl1 + Zahl2;
		return Zahl3;
	}
	
	public static int subtrahiere(int Zahl1, int Zahl2)
	{
		int Zahl3 = Zahl1 - Zahl2;
		return Zahl3;
	}
	
	public static int multipliziere(int Zahl1, int Zahl2)
	{
		int Zahl3 = Zahl1 * Zahl2;
		return Zahl3;
	}
	
	public static int dividiere(int Zahl1, int Zahl2)
	{
		int Zahl3 = Zahl1 / Zahl2;
		return Zahl3;
	}
}

Ganz klar: Zeile 18: ein Rechenzeichen ist eben kein int…

bye
TT

bei der Masse lohnt sich ja Hinweis auf Korrektur von Extremverhalten:

Variablen/ Parameter mit Kleinbuchstaben beginnen, sofern du den weltweiten Standard einhalten willst!
wenn nicht, dann ruhig für den Rest deines Lebens bei jedem Forum-Posting gleich dranschreiben dass du darum weißt, sonst immer solche Nachfragen :wink:

In Ergänzung zu TT’s Post: Die Methode nextInt() versucht, einen int zu lesen (daher der Name und Rückgabetyp). Sie “beschwert” sich per Exception, wenn sie keinen Int bekommt. Casten ist da nicht die Lösung!

Schau Dir die anderen nextXXX-Methoden von Scanner an: Scanner (Java Platform SE 8 )

Das eigentliche Problem ist ja schon geklärt, nur als Info, falls du andere Fehleingaben abfangen willst:
Was ist eine Exception?

Zusätzlich noch der Hinweis das die nextPrimitive Probleme mit zeilenbasiertem Input haben.