【发布时间】:2016-05-18 00:53:54
【问题描述】:
我正在开发一个骰子游戏,我希望在该游戏中允许用户保留他们的一些掷骰,然后重新掷其他骰子。我将他们的前 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);
}
}
我遇到的问题是else 语句中的i 没有增加。我觉得我不了解Java中while循环的基础知识,因为每次访问else循环时我都会看到它,这应该是每次用户在被问及是否要保留时回答“y”一个死,我的i应该加1。显然不是。
【问题讨论】:
-
附带说明,任何使用
==、<、>、<=、>=或!=的比较都将返回boolean。例如写1 != 2和写true是一样的。考虑到这一点,如果您的变量bool是false,那么bool != false将返回false;如果bool是true,那么bool != false将返回true。所以你可以写while(bool)而不是while(bool != false)。
标签: java arrays loops while-loop