2016-05-18 11 views
0

Ich arbeite an einem Würfelspiel, in dem ich dem Benutzer erlauben möchte, einige seiner Rollen zu behalten, und dann andere neu zu rollen. Ich speichere ihre ersten 5 Rollen in einem Array namens dieArray und drucke dann den Inhalt dieses Arrays, wobei jeder Würfel nummeriert ist, und frage dann den Benutzer, welcher Würfel er behalten möchte, indem er einen nach dem anderen schleift.Inkrementieren einer Variablen innerhalb einer Schleife in Java

Die Idee war, dann den Wert des Würfels hinzuzufügen, den der Benutzer gewählt hat, um ein neues Array zu behalten, das ich keepArray nannte.

Mein aktueller Code für diese Schleife ist wie folgt

while(bool != false){ 
     System.out.print("Would you like to keep a die? y/n: "); 
     char ch = scanner.next().charAt(0); 


     if(ch == 'n') { 
      System.out.println("Exiting----------------------------------------------"); 
      bool = false; 
     } 
     else{ 
      System.out.print("Which die number would you like to keep?: "); 
      int keep = scanner.nextInt(); 
      int i = 0; 
      keepArray[i] = die.dieArray[keep]; 
      i++; 
      System.out.println("i value is " + i); 
     } 
    } 

Das Problem, das ich habe, ist, dass mein i innerhalb der else Anweisung wird nicht erhöht wird. Ich fühle, dass ich die Grundlagen von while Schleifen in Java nicht verstehe, denn wie ich es sehe, jedes Mal, wenn die else-Schleife zugegriffen wird, sollte jedesmal "y" antworten, wenn gefragt wird, ob er/sie einen Würfel behalten möchte , meine i sollte um 1 erhöht werden. Natürlich ist es nicht.

+1

Als eine Randnotiz gibt jeder Vergleich mit '==', '<', '>', '<=', '> =' oder '! =' Einen 'boolean' zurück. Zum Beispiel ist das Schreiben von "1! = 2" dasselbe wie das Schreiben von "wahr". Wenn Ihre Variable 'bool' daher' false' ist, dann wird 'bool! = False'' false' zurückgeben; Wenn 'bool'' 'wahr '' ist, wird' bool! = false' '' '' zurückgeben. Sie können also 'while (bool)' 'anstelle von' while (bool! = False) 'schreiben. – Gendarme

Antwort

4

Ihre i Variable wird in jeder Runde neu erstellt. Sie müssen int i = 0; über der Schleife deklarieren.

+0

Danke, ich liebe dich –

+0

Wenn du ihn wirklich liebst, würdest du ihn als deine Antwort markieren – saloomi2012

Verwandte Themen