Variablen schon mit 1 im Case Befehl belegt?



  • Hallo!

    Also ich will folgendes C++ Script schaffen:

    1. Instruktionen anzeigen.
    2. Wenn eingeben I oder i oder O oder o oder S oder s oder B oder b, dann gebe den jeweiligen Satz mit CASE und SWITCH raus.
    3. Abschlusstext.

    Hier der Code:

    #include <iostream>
    using namespace std;
    
    int main ()
    {
    	char Auswahl;
    
    	cout << "(I)ntro, (S)piele, (O)ptionen, (B)eenden: ";
    	cin  >> Auswahl;
    
    	switch (Auswahl)
    	{
    	case (('I') || ('i')):
    		{
    			cout << "Das Intro wird abgespielt.\n";
    		} break;
    
    	case (('S') || ('s')):
    		{
    			cout << "Das Spiel wird gestartet.\n";
    		} break;
    
    	case (('O') || ('o')):
    		{
    			cout << "Einstellen der Optionen.\n";
    		} break;
    
    	case (('B') || ('b')):
    		{
    			cout << "Das Spiel wird beendet.\n";
    		} break;
    
    	default:
    		{
    			cout << "Falsche Eingabe!\n";
    		}
    	}
    
    	cout << "Ende\n";
    
    	return 0;
    }
    

    Dann kommt beim Compilen dieser Fehler 3 mal:

    D:\Programme\Microsoft Visual Studio\MyProjects\Projekt11\Datei1.cpp(18) : error C2196: case value '1' already used
    D:\Programme\Microsoft Visual Studio\MyProjects\Projekt11\Datei1.cpp(23) : error C2196: case value '1' already used
    D:\Programme\Microsoft Visual Studio\MyProjects\Projekt11\Datei1.cpp(28) : error C2196: case value '1' already used

    Was hat das jetzt zu bedeuten? oo

    MfG Darthshoot und danke im Voraus!



  • Hallo,

    Du kannst in einen case-Zweig keine boolschen Ausdrücke packen. Aus sowas

    ('I') || ('i')
    

    macht der Compiler 0 oder 1, deswegen die Fehlermeldung. Mach das lieber so

    case 'I':
    case 'i':
    {
       cout << "Das Intro wird abgespielt.\n";
    } break;
    // usw.
    


  • Hallo

    so werden case-Anweisungen nicht benutzt, sondern so :

    case 'I' :
      case 'i':
            {
                cout << "Das Intro wird abgespielt.\n";
            } break;
    

    /Edit : 12 Sekunden zu langsam...

    bis bald
    akari



  • Jo danke schön! 😃


Anmelden zum Antworten