Fehlermeldungen lesen und verstehen . Freie Übersetuzung durch mich:
Case übergeht die Initialisierung einer lokalen Variable.
Switch-Case springt (wie dir wohl bewusst ist) in einem Programm herum. Du darfst aber nicht an der Initialisierung von Variablen vorbeispringen in Bereiche wo diese Variablen trotzdem gültig sind. Doch genau das machst du bei dem int auswahl. auswahl wird im Case 1 initialisiert, ist aber, aufgrund deiner Klammerung, auch nachher noch gültig. Du benutzt auswahl zwar nicht mehr, aber passenden Code kann der Compiler trotzdem nicht erstellen.
Falls du willst, dass auswahl im gesamten switch-case Konstrukt gültig ist, setz die Initialisierung vor das switch. Wenn du willst, dass auswahl nur lokal in Case 1 existiert, dann mach auswahl auch lokal für den Case 1, indem du den Gültigkeitsbereich einschränkst (geschweifte Klammern markieren Anfang und Ende von Gültigkeitsbereichen).
edit: Ahh, ich sehe du verwendest auswahl auch in anderen Cases (Tut mir leid, dann Programm ist sauschlecht zu lesen, so wie du es hier gepostet hast . Verwende beim nächsten mal die cpp-Tags.). Wenn ich das jedoch richtig sehe, ist jedes mal eine andere Variable gemeint, die du bloß aus Faulheit mehrmals verwendest. Somit wäre die Variante mit der Einschränkung des Gültigkeitsbereiches die saubere Lösung. Die andere Variante wäre die faule Pfuscherlösung.