An eine gewisse Stelle zurück springen
-
Hi
Ich hab mal eine kleine Frage.
Ich habe ein kleines Programm geschrieben, aber ich möchte das ich wenn ich einen bestimmte Zeichen drücke, dass es an eine Stelle zurückspringen.
An dem Beispiel jetzt:Wenn ich die 7 drücke soll das Programm zur Eingabe der Messwerte zurück springen.
Wie kann ich das Problem lösen ?//Hauptprogramm #include <iostream.h> #include <stdlib.h> #include <string> #include <conio.h> #include "passwort.h" #include "ausgabe.h" #include "werte.h" #include "Sort.h" #include "sonstiges.h" int main() { int q,n,i, menue; double a[11]; char eingabe[6]; bool beenden = false; string pwd = "bfit"; passwort(pwd, eingabe); if (eingabe != pwd) { return 0; } else { cout << "Passwort korrekt"; cout << endl; cout << endl; cout << endl; clrscr(); // Bildschirm löschen } cout << "Herzlichen Willkomen in unserem Programm\n"; cout <<endl; cout <<"Bitte geben Sie die Anzahl der zuspeichernden Messwerte an: \n"; cout << "Eingabe: "; cin >> n; for (i=0; i<n; i++) { cout << i+1 <<". Messung: "; cin >> a[i]; } clrscr(); cout << endl; cout << "Was moechten Sie mit den vorhandenen Messwerten machen?"; cout << endl; cout << endl; cout << endl; while (beenden == false) { ausgabe (menue); switch(menue) { case 1: { mittel (a, n); break; } case 2: { mini (a, n); break; } case 3: { maxi (a, n); break; } case 4: { abSort (a, n); break; } case 5: { ausSort (a, n); break; } case 6: { aendern (a, n); break; } case 7: { beenden == true; break; } case 8: { beenden = true; break; } } } }
-
goto ist keine feine sache.... mach aus der eingabe der messwerte am besten eine eigene funktion/methode und rufe diese im falle der "7" auf...
-
Ich darf es leider nicht anders machen.
Mein Lehrer meint das es genauso ausehen soll.
-
Im Moment wird dein Programm ja beendet, wenn du die 7 drückst. Also mach da einfach nochmal ne Schleife drum, die du dann auf was anderes testest (z.b. jetztaberwirklichbeenden) ;-).
Dein Lehrer will sicher KEINE Sprünge sehen, oder aber er hat weniger Ahnung als mein 6 Jahre alter kleiner Bruder.
-
Stellt euch nicht so an!
input: for (i=0; i<n; i++) { cout << i+1 <<". Messung: "; cin >> a[i]; }
...
case 7: goto input;
Fertig!
-
Vielen Dank an euch allen
Aber mein bester Dank geht an 24x7_coderDas funktioniert wunderbar Danke
-
lol, 24x7_coder, du Verbrecher an modernen Programmierkonzepten, du hast 30 Jahre Verteufelung mal eben so weggewischt
-
Da sowieso schon eine Variable mit der Abbruchbedingung existiert (menue), kann man diese auch einsetzen:
do { // Messwerte einlesen do { // Ausgabe // switch case 1-6 } while (menue != 7 && menue != 8); } while (menue != 8);
Ansonsten sollte man nicht, nur um goto zu vermeiden, solche dummy Variablen einführen. Fast immer lässt sich goto aber trotzdem vermeiden.