while 循环 运行 错误的次数
While loop running incorrect number of times
我在使用 while-loop
时遇到问题,因为 if 语句的目的是检查按钮是否为空(如果不重复)。但是,如果整个 if 语句位于 while-loop
中,它会在 运行 代码后首次显示大约 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;
}
}
我在使用 while-loop
时遇到问题,因为 if 语句的目的是检查按钮是否为空(如果不重复)。但是,如果整个 if 语句位于 while-loop
中,它会在 运行 代码后首次显示大约 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;
}
}