Sprungmarke
-
Hallo zusammen,
ich bin ein C++ Neuling und bräuchte eure Hilfe. Ich schaue mir gerade ein Tutorial auf Youtube an bei dem es um das Erstellen eines Menüs mit Hilfe von switch case geht. Das Menü selbst ist sehr einfach gehalten daher habe ich es zu Übungszwecken etwas erweitert.
#include <iostream> using namespace std; int main() { hauptmenue: cout << "\t1. Singleplayer\n" << "\t2. Multiplayer\n" << "\t3. Optionen\n" << "\t4. Beenden\n" << endl << "Auswahl: "; short hauptmenue; short singleplayer; cin >> hauptmenue; while ( hauptmenue >= 5 ){ cout << "Falsche Auswahl\n"; cout << "Auswahl: "; cin >> hauptmenue; } system("cls"); switch ( hauptmenue ){ case 1: cout << "\t 1. Kampagne starten\n" << "\t 2. Kampagne laden\n" << "\t 3. Zurueck zum Hauptmenu\n" << "Auswahl: "; cin >> singleplayer; break; case 2: system("cls"); cout << "Mutiplayer wird geladen..."; break; case 3: system("cls"); cout << "Nicht verfuegbar..."; break; case 4: return 0; } while ( singleplayer >= 4 ){ cout << "Falsche Auswahl\n"; cout << "Auswahl: "; cin >> singleplayer; } switch ( singleplayer ){ case 1: system("cls"); cout << "Starte Kampagne..."; break; case 2: system("cls"); cout << "Lade Kampagne..."; break; case 3: system("cls"); goto hauptmenue; break; } cin.sync(); cin.get(); return 0; }Um die Möglichkeit zu haben ins Hauptmenü zurückzukehren habe ich einen Sprungbefehl gebraucht. Nun habe ich aber gelesen dass der goto Befehl verpönt ist und es überhaupt keinen Grund gibt diesen zu nutzen.
Welche andere Möglichkeit würde sich anbieten um dasselbe Ergebnis zu erzielen?
-
große schleife drumherum.
-
Hallo Volkard,
danke für die schnelle Hilfe. Ich komme nicht darauf wie die Schleife auszusehen hat und an welche Bedingung die geknüpft sein muss. Könntest du das bitte etwas näher ausführen?
-
So wies jetzt ist, wo du sowieso in
case 4mitreturnaus dem Programm aussteigst? Eine Endlosschleife a lafor(;;){}oderwhile(ture){}.
-
Sprungmarken sind in schlechter Stil, wenn dein Youtube-Tutorial dir so etwas beibringt, solltest du deine Quelle zum lernen von C++ überdenken. Am besten hollst du dir ein gutes Buch.
-
Nein, da muss ich den Verfasser des Videos in Schutz nehmen. Der ursprüngliche Code sah nämlich so aus:
#include <iostream> using namespace std; int main(void) { cout << "Waehle einen Modus:\n" << "\t1. Singleplayer\n" << "\t2. Multiplayer\n" << "\t3. Optionen\n" << "\t4. Beenden\n" << "Auswahl: "; char auswahl; cin >> auswahl; switch ( auswahl ) { case '1': cout << "Singleplayer wird geladen ..."; break; case '2': cout << "Multiplayer wird geladen ..."; break; case '3': cout << "Optionen werden geladen ..."; break; case '4': return 0; } cin.sync(); cin.get(); return 0; }Den Rest habe ich verbrochen. :p
Ich habe ja erst Anfang der Woche mit C++ angefangen und gerade für die Grundlagen sind die Videos gar nicht so schlecht. Dass früher oder später kein Weg an ein Buch vorbei führt weiß ich ja auch. Aber leider gehen die Meinungen speziell bei deutschsprachigen Büchern sehr weit auseinander.
Danke erst mal für eure Hilfe. Es klappt zwar noch nicht so wie ich es mir vorstelle aber ich werde es morgen weiter versuchen.