Servus, ich bin noch total neu im Gebiet von C++ und lese gerade das Buch "C++ für Spieleprogrammierer" seit 2 Tagen. Bisher hab ich eigentlich alles ohne Probleme verstanden und mir ist es auch wichtig bevor ich weitere Kapitel lese, dass ich das was ich gelesen hab auch verstanden habe und selbst umsetzen kann. Nun hab ich allerdings ein "?" da stehen und bitte um etwas Hilfe .. ;)
Es geht mir momentan um den "oder" operator. Beispiel:
char chAuswahl;
cout << "(I)ntro starten" << endl;
cin >> chAuswahl;
if ((chAuswahl == 'i') || (chAuswahl == 'I'))
cout << "Intro wird abgespielt" << endl;
Hier gehts ja darum das man mit nem kleinen oder großem "i" das Intro startet dank des "oder".
Nun hab ich das ganze auch mal mit switch case durch gelesen allerdings ohne "oder" und ich frag mich wie das da funktioniert. switch / case soll ja bei längeren Codes besse als if, else if und so sein.
switch (chAuswahl)
{
case (('i') || ('I')):
cout << "Intro wird abgespielt" << endl;
} break;
wenn ich nun versuche mit "||" ein oder einzubauen für nen großes und kleines I funktioniert es nicht. Und ich les derzeit im Buch auch nichts davon wie man das bei switch case macht.
Wie kann ich das bei switch / case machen ohne für jeden buchstaben 2x nen case für groß und kleinbuchstaben zu verwenden ( dann könnt ich ja gleich bei if, else if bleiben )..
grüße, Kijimea
Frage zu logischen Operatoren
- Aramis
- Moderator
- Beiträge: 1458
- Registriert: 25.02.2009, 19:50
- Echter Name: Alexander Gessler
- Wohnort: 2016
- Kontaktdaten:
Re: Frage zu logischen Operatoren
Hallo und herzlich willkommen im Forum :-)
Man nennt das auch 'Durchfallen'. Wenn am Ende eines case-Blocks kein break steht, laeuft das Programm einfach in den naechsten Block hinein.
Oder, noch besser, alle Grossbuchstaben einfach vorab in Kleinbuchstaben umwandeln (ggf. #include <cctype> vor das Programm setzen damit du tolower verwenden kannst):
Gruss, Alex
Ungefaehr so:Wie kann ich das bei switch / case machen ohne für jeden buchstaben 2x nen case für groß und kleinbuchstaben zu verwenden
Code: Alles auswählen
switch (chAuswahl)
{
case 'i':
case 'I':
cout << "Intro wird abgespielt" << endl;
break;
};
Oder, noch besser, alle Grossbuchstaben einfach vorab in Kleinbuchstaben umwandeln (ggf. #include <cctype> vor das Programm setzen damit du tolower verwenden kannst):
Code: Alles auswählen
switch (tolower(chAuswahl))
{
case 'i':
cout << "Intro wird abgespielt" << endl;
break;
};
Re: Frage zu logischen Operatoren
Vielen Dank :)
-
- Establishment
- Beiträge: 191
- Registriert: 01.03.2009, 19:22
- Echter Name: David N.
Re: Frage zu logischen Operatoren
… was dir aber einer böse Überraschung bescheren kann, wenn der Benutzer eine türkische Locale verwendet. ;)Aramis hat geschrieben:Oder, noch besser, alle Grossbuchstaben einfach vorab in Kleinbuchstaben umwandeln (ggf. #include <cctype> vor das Programm setzen damit du tolower verwenden kannst):
Code: Alles auswählen
switch (tolower(chAuswahl)) { case 'i': cout << "Intro wird abgespielt" << endl; break; };
-
- Establishment
- Beiträge: 212
- Registriert: 08.05.2011, 09:59
- Benutzertext: Feel Free
Re: Frage zu logischen Operatoren
eine schöne kleine übung für ein späteres kapitel. lassen wir den user nur die gewünschten eingaben machen. alle anderen werden gesperrt ;-)klickverbot hat geschrieben:… was dir aber einer böse Überraschung bescheren kann, wenn der Benutzer eine türkische Locale verwendet. ;)