我正在参加一门初级Java课程,为了一个项目,我需要用循环中的循环来计算条件返回TRUE(correctGuess)或FALSE(incorrectGuess)的次数。我的问题在于内部循环中被递增的变量不会保持它们递增的值,因此外部while循环的条件永远不会为false。我是编程的新手,无法找出解决方案。提前感谢您花时间回答这个愚蠢的问题,如果有任何问题,我将很乐意做更好的解释。代码如下:
int incorrectGuess = 0;
int correctGuess = 0;
while(incorrectGuess < 6 && correctGuess < WORD_LENGTH) {
//Gets the users first guess
System.out.print("Please guess a letter [A-Z]: ");
letterGuessed = keyboard.nextLine();
for (int i = 0; i < WORD_LENGTH; i++){
char value = wordLetterArray[i];
String letterArray_value = String.valueOf(value);
if(letterGuessed.equals(letterArray_value)){
++correctGuess;
}
else
System.out.println("Bad comparison!");
if(i == WORD_LENGTH)
++incorrectGuess;
}
}
incorrectGuess
到底是用来追踪什么的?请注意,由于incorrectGuess
在一个带有条件i < WORD_LENGTH
的 for 循环中被递增,在一个带有条件i==WORD_LENGTH
的 if 语句中也被递增,因此它实际上永远不会被递增,因为两个条件不可能同时成立。也许你想要在 if 语句中使用i==WORD_LENGTH-1
? - Flight Odyssey