Java 循环运行的次数不正确
我在执行Java 循环运行的次数不正确,java,random,while-loop,boolean,Java,Random,While Loop,Boolean,我在执行while循环时遇到问题,因为if语句用于检查按钮是否为空(如果不重复)。但是,如果整个if语句位于while循环中,则在第一次运行代码后会显示大约4个按钮 case HINT: Random random = new Random(); int size = SizeOfPuzzle.currentRows; int randomNumber1 = random.nextInt(size); int randomNumber2 = random.next
while循环时遇到问题,因为if语句用于检查按钮是否为空(如果不重复)。但是,如果整个if语句位于while循环中,则在第一次运行代码后会显示大约4个按钮
case HINT:
Random random = new Random();
int size = SizeOfPuzzle.currentRows;
int randomNumber1 = random.nextInt(size);
int randomNumber2 = random.nextInt(size);
if (puzzlePanel.arrayOfButtons[randomNumber1][randomNumber2].getText().isEmpty()) {
puzzlePanel.arrayOfButtons[randomNumber1][randomNumber2].setText(puzzle.getSingleLetter(randomNumber1, randomNumber2) + "");
}else {
boolean finished = true;
while (!finished) {
randomNumber1 = random.nextInt(size);
randomNumber2 = random.nextInt(size);
if (puzzlePanel.arrayOfButtons[randomNumber1][randomNumber2].getText().isEmpty()) {
puzzlePanel.arrayOfButtons[randomNumber1][randomNumber2].setText(puzzle.getSingleLetter(randomNumber1, randomNumber2) + "");
break;
}
}
}
break;
如果要输入while,则必须将finished
初始化为false
,然后在作业完成后将finished
设置为true
以退出循环
boolean finished = false;
while (!finished) {
// ↑ ↑ ↑ ↑ ↑ →→→→→→ this means loop while finished == false
randomNumber1 = random.nextInt(size);
randomNumber2 = random.nextInt(size);
if (puzzlePanel.arrayOfButtons[randomNumber1][randomNumber2].getText().isEmpty()) {
puzzlePanel.arrayOfButtons[randomNumber1][randomNumber2].setText(puzzle.getSingleLetter(randomNumber1, randomNumber2) + "");
finished = true;
}
}
你有什么问题?您需要为您的帖子增加清晰性。前一行(!finished)
您将finished
设置为true
,由于,因此该条件不会被评估为true
!true
为false
。请阅读:。@BrettWalker澄清我如何纠正我的问题,因为循环似乎没有运行。在某些情况下,如果不多次单击菜单选项,就不会重复在阵列中找到清除按钮。谢谢您的澄清。确定主要问题是完成=真;就在while循环开始之后。愚蠢的小错误。