[Error] jump to case label [-fpermissive]
-
int spielfunktion() { cin.sync(); system("cls"); cout << "Die Spielfunktion "<< endl ; for (int runden = 0; runden >= 10, ++runden;) { if (runden == 10) { return 0; } system("cls"); cout << "Runden: " << runden << " Punkte: " << punkte << endl << endl << endl; int fragen = randomgen(); int antwort = 0; switch (fragen) { case 1 : cout << " Wie viel Typen hat Diabetes? " << endl; cin >> antwort; if (antwort == 2) { system("cls"); cout << "RICHTIG!" << endl; punkte += 10 ; cin.get(); break; } else { cout << "Leider Falsch!"; cin.get();break;} case 2 : string antwort2; cout << " Welchers Organ verursacht Diabetes? " << endl; cin >> antwort2; if (antwort2 == "bauchspeicheldruese" || antwort2 == "pankreas") { cout << "RICHTIG! " << endl; punkte += 10; cin.get(); break; } else { cout << " leider Falsch!" << endl; cin.get(); break; } case 3 : string antwort3; cout << " Diabetes ... Typ 2 (ergaenze) " << endl; cin >> antwort3; if (antwort3 == "mellitus") { cout << "RICHTIG! " << endl; punkte += 10; cin.get(); break; } else { cout << " leider Falsch!" << endl; cin.get(); break; } } } }
Mag mir mal jemand bitte nur einen Tipp geben warum er nicht zur case 3 springen mag? Danke schon mal im voraus
Gruß DoctorCrank
-
Du kannst nicht an Variablendefinitionen vorbeispringen, wenn du danach im Gültigkeitsbereich dieser Variable landest. Denn dann hättest du an der Stelle einen total undefinierten Programmzustand. Lösung: Mach die Variablen in den case-Blöcken eine Ebene lokaler, indem du diese in einem tieferen Gültigkeitsbereich anlegst.
(Auf Deutsch: Mach { ... } um deine cases)
-
Ahhh
Vielen Dank, jetzt läuft es