我正在制作一个骰子游戏,我希望允许用户保留一些滚动,然后重新滚动其他人。我将他们的前5个卷存储在一个名为dieArray
的数组中,然后打印该数组的内容,每个模具都被编号,然后询问用户他/她想要保留哪个模具,一次循环一个。
然后想法是将用户选择保留的骰子值添加到我称为keepArray
的新数组中。
此循环的当前代码如下
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);
}
}
我遇到的问题是i
语句中的else
没有增加。我觉得我不理解Java中while
循环的基本原理,因为我每次访问else循环时都会看到它,每当用户回答“y”时,应该在询问他/她是否需要时为了保持骰子,我的i
应该增加1.显然它不是。
答案 0 :(得分:4)
每轮都会重新创建i
变量。您需要在循环上方声明int i = 0;
。