我正在编写一个 Simon Says 游戏,该游戏应该跟踪用户成功完成任务的次数。代码运行,但输出不正确。预期输出为 4,但我的代码输出为 8。
import java.util.Scanner;
public class SimonSays
{
public static void main (String [] args)
{
String simonPattern = "";
String userPattern = "";
int userScore = 0;
int i = 0;
userScore = 0;
simonPattern = "RRGBRYYBGY";
userPattern = "RRGBBRYBGY";
char s;
char u;
for (i = 0; i < 10; i++) {
s = simonPattern.charAt(i);
u = userPattern.charAt(i);
if (s == u)
{
userScore = userScore + 1;
continue;
}
}
System.out.println("userScore: " + userScore);
return;
}
}
最佳答案
所以我假设你遍历了这些字符,当第一次字符不匹配时,你会认为它“失败”并且只计算前面的匹配。
所以在这种情况下,您可以使用
if (s != u) {
break;
}
跳出循环;否则,只需增加计数即可。
我个人不喜欢使用 break
,但只会编写一个函数来在字符不匹配时返回计数。
关于java - 西蒙说计数器无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36708660/