2016-06-11 8 views
-2

Ich entwerfe ein einfaches RPG, nur um mich in C++ - Programmierung zu starten, aber meine else-Anweisung funktioniert nicht, und ich fühle mich mein Code ist sperriger, als es sein sollte. Könnten Sie mir wunderbare Tipps geben, wie ich meinen Code verbessern und die else-Anweisung korrigieren kann? Ich bin mir des "System (" cls ")" Hasses über alles bewusst, aber ich stelle es dort hin, weil es es sauberer aussehen lässt als andere Methoden.C++ Anfänger else Anweisung funktioniert nicht

Ich bin immer noch ein kompletter Anfänger in C++ von der Art und Weise

#include <iostream> 
#include <windows.h> 
#include <string> 

using namespace std; 
int save = 0; 
int menuinput; 
int raceinput; 
string race; 
int cont1; 

int main(void) 
{ 
     int save = 0; 
     int menuinput; 
     int raceinput; 
     string race; 
     int cont1; 
     cout << "(Insert Generic RPG Name Here) \n"; 
     if (save == 1){ 
      cout << "Main Menu\n"; 
      cout << "[1.] Continue\n"; 
      cout << "[2.] New Game\n"; 
      cout << "[3.] Options\n"; 
      cin >> menuinput; 


     } 

     if (save == 0){ 
      cout << "Main Menu\n"; 
      cout << "[1.] New Game\n"; 
      cout << "[2.] Options\n"; 
      cin >> menuinput; 
      system("cls"); 


     } 

     if (menuinput == 1) 
     { 
      cout << "Please select your race\n"; 
      cout << "[1.] Human\n"; 
      cout << "[2.] Elf\n"; 
      cout << "[3.] Dwarf\n"; 
      cout << "[4.] Orc\n"; 
      cin >> raceinput; 

      if (raceinput == 1){ 
       race = "Human"; 
       cont1 = 1; 

      } 
      if (raceinput == 2){ 
       race = "Elf"; 
       cont1 = 1; 
      } 
      if (raceinput == 3){ 
       race = "Dwarf"; 
       cont1 = 1; 
      } 
      if (raceinput == 4){ 
       race = "Orc"; 
       cont1 = 1; 
      } 
      else { 
       system("cls"); 
       cout << "Invalid Input, please try again."; 
       Sleep(1000); 
       main(); 
      } 
      if (cont1 = 1){ 
       system("cls"); 
       cout << race; 
       cin >> race; 

      } 
      else 
      { 
       system("cls"); 
       cout << "Invalid Input, please try again."; 
       Sleep(10000); 
       main(); 
      } 
     } 


} 

EDIT: Um es zu wiederholen, wenn ich versuche, die erste else-Anweisung zu verwenden (wobei das Hauptmenü vorhanden ist) die sonst Anweisung wird nicht aktiviert und beendet das Programm sofort. Die Else-Anweisung wird nicht angezeigt. Und in der zweiten else-Anweisung, die else-Anweisung Nachricht zeigt, aber die Sleep-Funktion nicht funktioniert, zeigt es für etwa eine halbe Millisekunde dann verschwindet.

+1

"funktioniert nicht" ist keine nützliche Problembeschreibung. –

+0

@SamVarshavchik hinzuzufügen, was ist wirklich das Problem? Was genau funktioniert * nicht wie gewünscht? – Li357

+1

Sie rufen 'main()' in 'main()' auf. Bevor Sie fortfahren, werfen Sie bitte einen Blick auf: http://stackoverflow.com/questions/2532912/call-main-itself-in-c. –

Antwort

1

Diese Zeile: if (cont1 = 1){

Sie haben = wo Sie == haben sollte.

Also, Ihr sonst nie passiert, weil du nicht bist Überprüfung wenncont1 gleich, du bist macht es gleich.

+0

Danke für den Tipp – Max