gpt4 book ai didi

Java:在for循环中递增变量

转载 作者:搜寻专家 更新时间:2023-11-01 03:39:02 24 4
gpt4 key购买 nike

我在初学者 Java 类(class)中,对于一个项目,我需要计算一个条件返回 TRUE(correctGuess) 或 FALSE(incorrectGuess) 的次数,其中一个循环内有一个循环。我遇到的问题是在内循环中递增的变量在循环重复时不保持它们递增的值。因此,外部 while 循环的条件永远不会为假。我真的是编程新手,我想不出解决方案。预先感谢您花时间回答这个愚蠢的问题,如果有任何问题,我很乐意做一个更好的解释。代码如下所示:

    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;

}
}

最佳答案

看起来你可能需要重新设计整个算法,但我可以告诉你这个永远循环的主要问题是什么:

// Seems legit
while(incorrectGuess < 6 && correctGuess < WORD_LENGTH) {

// Still seems legit
for (int i = 0; i < WORD_LENGTH; i++)

// Well, there's a problem, i will never be equal to word length
//because a condition of the for loop is i < WORD_LENGTH
if(i == WORD_LENGTH)
++incorrectGuess;

同样,我觉得您需要重新设计整个算法,但如果您希望它继续,只需将 incorrectGuess 增量行从 for 循环中拉出即可。这将为您提供预期的结果:

    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!");
}
}

incorrectGuess++;

关于Java:在for循环中递增变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19944506/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com