我正在构建一个子手/单词猜测游戏,该游戏使用数组检查用户输入的单词是否与单词中的字母匹配(他们正在尝试猜测)。试图跟踪用户正确猜测的次数(使用encenence变量),但是每当代码运行时,它就会计数两次。
所以我们说这个词是“羊驼毛” ... 用户猜测字母“ p”。 出现率等于“ 2”(应为“ 1”)
为什么要计数两次,我该如何解决?
while (indexCount < wordLength) {
result = word1.indexOf(guess, indexCount);
if (result != -1) {
occurence++;
//wordArr[result] = guess + " ";
}
indexCount++;
}
P.S。我希望这是有道理的,因为我不是最擅长解释事物的人。 如果有帮助,我可以发布完整的代码。
答案 0 :(得分:1)
如果您想将occurence
增加猜字母的出现次数,则应该为:
indexCount = 0;
while (indexCount < wordLength) {
result = word1.indexOf(guess, indexCount);
if (result > -1) {
occurence++;
indexCount = result + 1; // current occurrence is at index result, so search for
// next occurrence starting at index result + 1
} else {
break; // no more occurrences
}
}
答案 1 :(得分:0)
那是因为您正在使用while循环条件。当indexCount = 0和indexCount = 1时,您的出现次数会增加;可能您想这样做
indexCount = indexCount + result;