Problem mit DO WHILE
-
Hallo und guten Tag
Ich bin C++ Anfänger und habe ein kleines Problem.
Das Problem ist das wenn ich das Programm mit dem Menü-Punkt 7 verlassen will
springt es in der main-funktion direkt auf "return 0;" und macht nicht bei "else" weiter.Woran kann das liegen?
Hier der Code
#include <iostream> #include <windows.h> #include <limits> using namespace std; void ausw(void); bool land(int); void test(void); int chek(void); int main(void) { int mai1; bool labo; if(labo==false) { do { ausw(); mai1 = chek(); labo = land(mai1); } while(labo==false); } else { cout << "Das Programm wird beendet!!!\n"; Sleep(1000); } return 0; } void ausw(void) { cout << "-1- Europa\n"; cout << "-2- Asien\n"; cout << "-3- Afrika\n"; cout << "-4- test()-Funktion\n"; cout << "-5- while-Schleifendurchlauf\n"; cout << "-6- for-Schleifendurchlauf\n"; cout << "-7- Beenden\n\n"; } bool land(int lan1) { int whi1 = 0; switch(lan1) { case 1: cout << "\nEuropa\n\n"; Sleep(2000); break; case 2: cout << "\nAsien\n\n"; Sleep(2000); break; case 3: cout << "\nAfrika\n\n"; Sleep(2000); break; case 4: test(); Sleep(2000); break; case 5: while(whi1 <= 1000) { cout << whi1 << ". Schleifendurchlauf\n"; whi1++; } Sleep(2000); cout << endl; break; case 6: for(int fo1=1; fo1<=1000; fo1++) { cout << fo1 << ". Schleifendurchlauf\n"; } Sleep(2000); cout << endl; break; case 7: return true; default: break; } } void test(void) { cout << "\nDas ist eine Test Funktion!!!\n\n"; } int chek(void) { int che1; do { cout << "\nEingabe: "; cin >> che1; if(che1) { return che1; } else if(!cin.bad() && !cin.eof()) { cerr << "\nDu hast was falsches eingegeben!\n"; Sleep(1000); cerr << "\nVersuch es nochmal!\n"; Sleep(1000); cin.clear(); cin.ignore(numeric_limits<streamsize>::max(), '\n'); } } while(cin); }
-
und macht nicht bei "else" weiter
Es wird entweder der if-Zweig ausgefuehrt oder der else-Zweig. Bist du schon im if-Zweig, wird der else-Zweig also nicht mehr ausgefuehrt.
-
Du verstehst leider die Funktionsweise der if-Schleife falsch. Wenn das Programm die if-Anweising erreicht entscheidet es genau in diesem Moment welche von den beiden Blocks ( if und else ) es ausführen wird. Nachträgliches Ändern der gecheckten Variable bringt also nix.
-
Travor schrieb:
if-Schleife
Stirb.

-
Travor schrieb:
Du verstehst leider die Funktionsweise der if-Schleife falsch.
Da ist er wohl nicht der einzige. http://www.if-schleife.de/
-
Bin schon seid ner Stunde am grübeln und komm nich auf sowas einfaches.
Gott bin ich vercheckt.
Vielen Dank euch Beiden
-
cooky451 schrieb:
Travor schrieb:
Du verstehst leider die Funktionsweise der if-Schleife falsch.
Da ist er wohl nicht der einzige. http://www.if-schleife.de/
upps
Das ist echt peinlich:).. Vielleicht sollte ich etwas langsamer schreiben.. Dann kommt der Hirn auch nach..
-
Travor schrieb:
cooky451 schrieb:
Travor schrieb:
Du verstehst leider die Funktionsweise der if-Schleife falsch.
Da ist er wohl nicht der einzige. http://www.if-schleife.de/
upps
Das ist echt peinlich:).. Vielleicht sollte ich etwas langsamer schreiben.. Dann kommt der Hirn auch nach..Der Hirn? Vielleicht solltest du noch langsamer schreiben...
-
Ohne mir jetzt das Problem angesehen zu haben: Du lernst nicht zufällig mit "C++ von A bis Z"?
Wenn ja dann schau dir das mal an: http://www.c-plusplus.net/forum/272350
Und direkt danach als Alternative das hier http://www.amazon.de/Programmierer-lernen-Professionell-anwenden-L%C3%B6sungen/dp/3446416447 oder gleich für eine Liste das hier http://www.c-plusplus.net/forum/251551Wenn nicht, dann ignorier das hier einfach.
-
Jemand zahlt für Webspace um sone Drecks website zu hosten? ;O