[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


  • Mod

    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 🙂


Anmelden zum Antworten