【发布时间】:2020-01-02 11:24:48
【问题描述】:
该程序应该是一个包含 10 个不同单词的词汇表测试。我的代码正在工作,除了一件事,它是一个函数,如果某些字符是正确的,那么它是一个允许用户获得输出“几乎正确,正确答案是......”的函数。
例如;正确答案是房子。
user writes: housq -> output = "Almost correct, the correct answer is..."
user writes hsasa -> output = "Wrong, the correct answer is..."
我的计划是通过 int count 将“几乎正确”放在值 1-3 之间的范围内。
但是有了这个循环: 它只计算拼写正确的单词,例如
Correct word is house.
input -> house -> count=5
input -> housa -> count=0.
我是 Java 新手,对于潜在的错误代码,我向大家道歉。
Scanner scanner = new Scanner(System.in);
String inputString = "";
String[] eng = {"car", "house", "run", "blue", "bake", "jump", "swim", "moon", "road", "kind"};
String[] swe = {"bil", "hus", "springa", "blå", "baka", "hoppa", "simma", "måne", "väg", "snäll"};
int result = 0;
int word = 0;
int count = 0;
int low = 2;
int high = 3;
for (int i = 0; i < swe.length; i++) {
System.out.println(swe[i]);
inputString = scanner.nextLine().trim();
if (inputString.equalsIgnoreCase(eng[i])) {
word++;
result++;
System.out.println("Korrekt! " + result + " rätt av " + word + " ord.");
for (int j = 0; j < inputString.length(); j++) {
if (inputString.charAt(j) == eng[i].charAt(j)) {
++count;
}
}
if(count >= low){
System.out.println("Nästan rätt, korrekt svar är " + eng[i]);
word++;
}
if(count > low && count < high){
System.out.println("Nästan rätt, korrekt svar är " + eng[i]);
word++;
}
if (count == 0) {
System.out.println("fel, rätt svar är " + eng[i]);
word++;
}
System.out.println(count);
if (inputString.equalsIgnoreCase("Q")) {
System.out.println("Du svarade på totalt " + word + " glosor och hade " + result + " rätt. Välkommen åter!");
System.exit(0);
}
count = 0;
}
}
}}
【问题讨论】:
-
能否请您粘贴您的 eng 声明在 if 条件下使用,如
eng[i]。 -
您应该发布更多代码,因为查看 for 循环我不明白为什么在评估“housa”时您不会计数为 4。我还建议您注意空格(也许 trim() 用户输入)
标签: java char comparison