【发布时间】:2018-10-30 12:39:04
【问题描述】:
我有这个布尔方法,它应该比较“word”和“inputPlay”之间的所有字符,如果它们匹配则将 int 数组更新为值 1 并返回 true。
但是,它不会循环,而是在找到匹配项时停止。我应该怎么做?
public static boolean updateArray(String word, int[] guesses, String inputPlay) {
for (int i = 0; i < word.length(); i++) {
if (inputPlay.charAt(0) == word.charAt(i)) {
guesses[i] = 1;
}
return true;
}
return false;
}
【问题讨论】:
-
您是否只想将
return trueinsideif块?其他一些逻辑?目前,这将始终在循环的第一次迭代中返回 true。您想什么时候回来? -
这是因为你在 for 循环中返回 true。
-
@MatthewCollins:那么您不想返回循环内部。如果找到匹配项,您希望在循环后返回。
-
另外,
charAt(0)总是获取inputPlay的第一个字符并将其与word的下一个字符进行比较——这应该是chartAt(i),如果word和inputPlay的长度不同。 -
请不要通过破坏您的帖子为他人增加工作量。通过在 Stack Exchange (SE) 网络上发帖,您已在 CC BY-SA 3.0 license 下授予 SE 分发该内容的不可撤销的权利(即无论您未来的选择如何)。根据 SE 政策,帖子的非破坏版本是分发的版本。因此,任何破坏行为都将被撤销。如果您想了解更多关于删除帖子的信息,请参阅:How does deleting work? ...