Gast Tobias Unger Geschrieben 29. Mai 2002 Geschrieben 29. Mai 2002 Hallo! Ne Dumme Frage!! Hab noch nicht sonderlich viel Programmiererfahrung mit c++ ICh mache ein Zinseszinsberechungsprogramm/Dahrlehn/Hypothekenberechnun, ect. Ich wollte mein Programm im ganzen noch ein bischen userfreunlicher gestallten. Wenn der user einen tippfehler eingibt, soll das Programm automatisch eine fehlermeldung auswerfen , und sich dann beende, damit erst gar keine weiteren missverständnisse auftreten! Nun funktioniert aber der befehl break nicht:( Einmal funktioniert er im Quellcode, 2 mal sagt mit der Compiler " Schlüsselwort break ungültig" Kanns seindas break nur dann funktioniert wenn es innerhalb einer forschleife steht!" Ich schick mal ein kleines stückchen quellcode mit! :D Bzw. ein beispiel! Beide folgenden quelltexte stehen in einer funktion die aufgerufen wird(in der selben) Das obige beispiel geht wunderbar: for(..;..;..) { dumdidum blabla if(.....) { break; } } In dem zusammenhang funktioniert break nicht: quellcode quellcode dumdidum cin>>a; if(a==1) { break; } Danke für die Tipps:D Bully Zitieren
StarLord Geschrieben 29. Mai 2002 Geschrieben 29. Mai 2002 Original geschrieben von bully2000 In dem zusammenhang funktioniert break nicht: quellcode quellcode dumdidum cin>>a; if(a==1) { break; } Danke für die Tipps:D Warum sind hier alle zu faul mal die Hilfe des Compilers aufzurufen und nach "break" zu suchen? Da ich deine Faulheit nicht auch noch unterstützen will sag ich nur soviel: Schon mal was von "return" gehört? Gruß, StarLord Zitieren
Klotzkopp Geschrieben 29. Mai 2002 Geschrieben 29. Mai 2002 Original geschrieben von StarLord Schon mal was von "return" gehört?Schon mal was davon gehört, dass nach dem if-Block nicht unbedingt Schluss sein muss? Bisschen freundlicher geht auch @Bully2000: Mit break kommst Du nur aus do-, while- und if-Schleifen sowie aus switch-Blöcken raus. Zitieren
Gast Tobias Unger Geschrieben 29. Mai 2002 Geschrieben 29. Mai 2002 Aber das is doch ne Ifschleife?:confused: if(a==1) { break; } ooooooooooooooooooooooooooooooooooooooooooooder? MfG Bully:D Zitieren
Orffi Geschrieben 29. Mai 2002 Geschrieben 29. Mai 2002 Abgesehen davon, daß ich den Begriff if-Schleife nicht besonders mag, muß man, so denke ich drei Dinge unterscheiden: break return exit break: Der C++ Standard besagt, daß break nur in "iteration statements" oder im switch block auftreten darf. Iteration statements sind while, do-while und for-Schleifen. break steigt aus der Schleife aus, beendet sie also. Wenn es noch eine äußere Schleife gibt wird die natürlich weiter ausgeführt. return: return springt aus der Funktion heraus, zurück zur aufrufenden Funktion. exit: exit ist eine Funktion aus <cstdlib>. exit (rückgabewert) beendet das Programm. Dem Aufrufenden Programm wird als Ergebnis der rückgabewert aus exit übergeben. Es gibt auch noch abort, dies sollte aber vermieden werden, weil hÃer das Programm nicht normal beendet wird. HTH Jan Zitieren
Klotzkopp Geschrieben 29. Mai 2002 Geschrieben 29. Mai 2002 Original geschrieben von Klotzkopp if-SchleifenGebt mir Tiernamen Soll natürlich for heißen. Sorry für die angerichtete Verwirrung. Zitieren
StarLord Geschrieben 29. Mai 2002 Geschrieben 29. Mai 2002 Original geschrieben von Klotzkopp Schon mal was davon gehört, dass nach dem if-Block nicht unbedingt Schluss sein muss? Wenn er da abbrechen will? Warum sagst du MIR das? Er wollte eine Antwort und die hatte er auch bekommen. Original geschrieben von Klotzkopp Bisschen freundlicher geht auch Nö, sicher nicht. Am liebsten würd ich nur noch "man MSDN-Hilfe" posten. Ihr Moderatoren müsst echt viel Geduld haben... Original geschrieben von Klotzkopp @Bully2000: Mit break kommst Du nur aus do-, while- und if-Schleifen sowie aus switch-Blöcken raus. Dass es keine If-Schleifen gibt hast du ja gott sei dank schon bemerkt. Aber wie kommst du darauf dass man eine if-Abfrage mit break beenden kann? Ist das ein neues Cmurksmurks.net Feature? ;-) Gruß, StarLord Zitieren
Woodstock Geschrieben 29. Mai 2002 Geschrieben 29. Mai 2002 Anstelle des if sollte in seiner Aussage ein for stehen. Und da kann man dann mit break raus! Bine PS: Und dennoch, auch wenn es Geduld kostet, ist höflichkeit immer wichtig. Ich z.B. habe zu Hause zwar eine Programmierumgebung, aber keine MSDN. Da kann ich darin gar nicht nachschauen! Zitieren
Orffi Geschrieben 29. Mai 2002 Geschrieben 29. Mai 2002 Was geht denn hier ab? Wenn er die Frage nunmal hat, dann kann er sie ja auch stellen, wenn Du sie zu blöd findest, dann mußt Du ja nicht antworten. Aber das nur am Rande, worum es mir hauptsächlich geht, ist, daß MSDN hier völlig die falsche Adresse ist. Es mag sein, daß man dort eine Antwort findet (vielleicht sogar eine Richtige), aber MSDN ist nicht (ich wiederhole NICHT) die Instanz, die hier die Antworten gibt. Hier muß man im Sprachstandard nachsehen und nirgendwo sonst. Wenn man den nicht bei sich 'rumfliegen hat, dann kann mman auch in einem C++Buch nachsehen, aber nicht bei einem Hersteller von Compilern. Jan Zitieren
Klotzkopp Geschrieben 29. Mai 2002 Geschrieben 29. Mai 2002 Original geschrieben von StarLord Am liebsten würd ich nur noch "man MSDN-Hilfe" posten. Tolle Idee! Lasst uns nur noch mit "RTFM" antworten, macht das Forum auch viel übersichtlicher. Jede Frage ist sofort erledigt. Wenn Du nicht mehr zu sagen hast, dann solltest Du Dir die Antwort vielleicht besser verkneifen, und statt dessen über den Sinn eines solchen Forums nachdenken. Kann ja sein, dass Du den Fragesteller für faul und seine Frage für dämlich hältst - ist ja auch Dein gutes Recht - aber das darfst Du dann bitte für Dich behalten, das ist hier nämlich OffTopic. Ihr Moderatoren müsst echt viel Geduld haben.Ich glaube halt fest daran, dass Du es noch einsehen wirst... Zitieren
brixxie Geschrieben 30. Mai 2002 Geschrieben 30. Mai 2002 Hallo, Falls es dich noch interessiert. Wenn du das Programm beenden möchtest gibt: exit(0); ein. Viel Spaß mit dem Programm. Zitieren
Gast Tobias Unger Geschrieben 31. Mai 2002 Geschrieben 31. Mai 2002 OhOh:D Ich sorge ja mal wieder richtig für trubel! Danke erstmal an alle die mir geholfen haben!:cool: Also, eins sei dazu gesagt! Ich habe leider zur Zeit keine hilfe, und Antworten braucht auch nur der, der das gerne tut:) Also hier die Frage:D: Brauche ich für getch() né neue include-Datei?, weil er mir sagt das getch ein nichtdeklarierter bezeichner ist! MfG! Danke! Bully Zitieren
Gast Tobias Unger Geschrieben 31. Mai 2002 Geschrieben 31. Mai 2002 Die selbe frage gilt für EXIT! Zitieren
Citrus-Motte Geschrieben 31. Mai 2002 Geschrieben 31. Mai 2002 Original geschrieben von bully2000 Also hier die Frage:D: Brauche ich für getch() né neue include-Datei?, weil er mir sagt das getch ein nichtdeklarierter bezeichner ist!Versuchs mal mit: #include <conio.h> Zitieren
Citrus-Motte Geschrieben 31. Mai 2002 Geschrieben 31. Mai 2002 Original geschrieben von bully2000 Die selbe frage gilt für EXIT! #include <stdlib.h> Zitieren
Gast Tobias Unger Geschrieben 31. Mai 2002 Geschrieben 31. Mai 2002 Gleich lass ich euch in Ruhe! Einer muss noch! if(....) { cout<<" Sie haben das berechnen abgebrochen, das Programm wird nun beendet"; getch(); exit(); } Wieso macht er erst die pause, und dann beendet sich das Programm aber ohne den Text darüber anzuzeigen!....? danke! Bully:D Zitieren
Citrus-Motte Geschrieben 31. Mai 2002 Geschrieben 31. Mai 2002 Also, ich hab mal folgendes probiert:#include <iostream.h> #include <conio.h> #include <stdlib.h> //--------------------------------------------------------------------------- int main() { int taste; cin >> taste; if(taste==1) { cout<<" Sie haben das berechnen abgebrochen, das Programm wird nun beendet"; getch(); exit(0); } return 0; }[/PHP]...und bei mir wird der Text ausgegeben, wenn ich 1 eingebe. Zitieren
Gast Tobias Unger Geschrieben 31. Mai 2002 Geschrieben 31. Mai 2002 Genau so wie du hab ich das auch:)! Bis auf das ich statt taste status als variablenname habe! Sonst ganz genauso:D! Er verlässt bei mir aber das Programm ohne den TExt anzuzeigen wenn ich ne 1 eingebe:((( Haste ne Iddee? Worans liegt? MfG Tobi Zitieren
Gast Tobias Unger Geschrieben 31. Mai 2002 Geschrieben 31. Mai 2002 Nach dem ich die 1 eingegeben hab und ENTER drück amcht er ne pause! Drück ich dann nochmal ist er weg*grübel* Der text wird erst nachdem getch ausgeführt wurde angezeigT! WARUM:( :( :( Zitieren
Woodstock Geschrieben 31. Mai 2002 Geschrieben 31. Mai 2002 Dein Problem lieg darin das Du noch as im Puffer Speicher hast, was getch() sofort nimmt, und nicht auf eine weitere Eingabe wartet. Du musst also den Puffer leeren. Mache ich immer mit endl! Sähe dann so aus:#include <iostream.h> #include <conio.h> #include <stdlib.h> //--------------------------------------------------------------------------- int main() { int taste; cin >> taste; if(taste==1) { cout<<" Sie haben das berechnen abgebrochen, das Programm wird nun beendet" << endl; getch(); exit(0); } return 0; }[/PHP] Dann müßte es klappen! Bine Zitieren
Citrus-Motte Geschrieben 31. Mai 2002 Geschrieben 31. Mai 2002 Original geschrieben von bully2000 Nach dem ich die 1 eingegeben hab und ENTER drück amcht er ne pause! Drück ich dann nochmal ist er weg*grübel* Der text wird erst nachdem getch ausgeführt wurde angezeigT! WARUM:( :( :( Ich versteh' auch nicht warum es bei Dir nicht geht :confused: Ich gebe die 1 ein und drücke ENTER... ...dann erscheint der Text... ...ich drücke nochmal ENTER... ...das Fenster schließt sich. Also, wenn Du das so wie ich hast, ist mir die Sache rätselhaft! @Woodstock: Weißt Du warum es bei mir auch ohne endl geht? Zitieren
Woodstock Geschrieben 31. Mai 2002 Geschrieben 31. Mai 2002 Hmm, nicht wirklich. Was benutzt Ihr denn für Compiler. Das Problem ist wirklich das mit dem Puffer. Der wird bei Dir autmatisch gelöscht, so wie es aussieht, und bei Bully nicht! Bine Zitieren
Citrus-Motte Geschrieben 31. Mai 2002 Geschrieben 31. Mai 2002 Original geschrieben von Woodstock Hmm, nicht wirklich. Was benutzt Ihr denn für Compiler. Das Problem ist wirklich das mit dem Puffer. Der wird bei Dir autmatisch gelöscht, so wie es aussieht, und bei Bully nicht! Bine Ich hab' den Borland C++Builder Zitieren
Woodstock Geschrieben 31. Mai 2002 Geschrieben 31. Mai 2002 Also ich arbeite mit dem Visual Studio (also Visual C++)! Bully, was für einen Compiler hast Du? Bine Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.