do while schleife geht nicht
-
hallo bzw guten abend
folgendes problem ich hab ein menü mit tasten zur auswahl un auf die taste 'b'||'B' soll sich das menü schliesen und nicht wenn ich eine andere drücke
also ich habe bestimmt jetzt 3 tage gesucht und es klappt einfach net (ich denke ist wieder son typischer anfängerfehler da mir ja noch die routine fehlt )
#include <iostream> using namespace std; int main () { //variablen // char Menü, chShip=0, chTest=0; int nautikus=12; int enterprise=17; //Startbildschirm // cout<<"(S)piel starten\n\n(B)eenden"<<endl; cin >> Menü; do { //Taste S oder E drücken // switch (Menü) { case ('s'): case ('S'): { cout << "Spiel wird gestartet\nviel Glueck!"<<endl; system("pause"); //mit tastedrück bildschrim leeren system("cls"); cout<<"waehle dein schiff\n(N)autikus oder (E)nterpriese\n"; cin>>chShip; // <<< für nächstes switch befehl //Taste n oder e drücken // switch (chShip) { case ('n'): case ('N'): { cout<<"nautikus drücke u"<<endl; cin>>chTest; switch (chTest) { case ('u'): case ('U'): { cout<<"enterprise"<<endl; }break; } }break; case ('e'): case ('E'): { cout<<"enterprise"<<endl; }break; } } case ('b'): case ('B'): { cout << "Game wird Beendet!\n"; }break; default: //wenn nichts von den gedrückt wird // { cout << "error"<<endl; }break; } }while (Menü=!'b' && Menü!='B'); // wenn nicht die richtige taste gedrückt wird // system("pause"); return (0); }so ich danke für eure freundlich hilfe
-
Da
Menüinnerhalb der Schleife nie geändert wird, kann die Schleife nie abbrechen.
-
ändere ich menü nicht wenn ich eine taste drücke ??
-
Die Menü-Eingabe muss in die Schleife rein:
... do { cout<<"(S)piel starten\n\n(B)eenden"<<endl; cin >> Menü; //Taste S oder E drücken // switch (Menü) { ...Allerdings wird die Menü-Eingabe 'E' nicht abgefangen.
-
so ich habe jetzt
cout<<"(S)piel starten\n\n(B)eenden"<<endl; cin >> Menü;IN die do while geschrieben
drücke ich 'b' kommt meldung spiel beenden und dann schliest fenster ( das ist korreckt)
drücke ich die 'falsche taste' kommt meldung "error" und close fester
klappt also immer nicht net
-
Maldikus schrieb:
drücke ich 'b' kommt meldung spiel beenden und dann schliest fenster ( das ist korreckt)
drücke ich die 'falsche taste' kommt meldung "error" und close fester
klappt also immer nicht net
Stell mal deine Frage so:
1. Auf Deutsch oder in einer anderen Sprache, aber Hauptsache lesbar!
2. Sag genau, was du gemacht hast.
3. Sag genau, was du erwartest.
4. Sag genau, was stattdessen passiert ist.
-
ok sepp
also es soll eine taste gedrück werden aso s oder b
s soll die schiffs auswahl starten und b soll das ganze program beenen und NUR wenn ich b drück wenn ich halt eine andere taste drück (beispiel a was je nicht deklariert ist) soll das fenster NICHT geschlossen werden
sondern nur error und ich kann wieder wählen s oder b (ist ja der sinn einer do while schleife)
-
Uhh, der Fehler ist subtil:
Menu!='b'Bedeutet: Fall Menu ungleich 'b' ist
Menu=!'b'Bedeutet: Weise Menu den Wert "Nicht 'b'" zu.
Stell die Warnoptionen deines Compilers immer auf Maximum. Behandle Compilerwarnungen wie Fehler.
-
hmm??
was mache ich da nur??
danke seppj
du bist zwar streng aber du verstehst was von diesem thema hierich hatte nur sonderzeichen verwechselt
jetzt klappt es so wie ich wollte ^^danke für die supper schnelle hilfe