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.
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