gpt4 book ai didi

Java 找不到循环符号,逻辑问题?

转载 作者:行者123 更新时间:2023-11-29 06:04:14 27 4
gpt4 key购买 nike

好的,我在这个特定部分的程序从 studentAnswer 字符串数组中获取一行数据,其值类似于 TTFFTFTFTF。我应该接受它,并将它与一个键数组进行比较,它可能看起来像 TFFFTFTFTF。一个学生参加了一个测验,我的程序计算出了正确的分数。

我的意图是使用一个单独的点数组来查找学生的数字成绩。 studentAnswer 的索引指向一个特定的学生。所以 studentAnswer[i]TTFFTFTFTF。我使用子字符串将每个单独的 T/F 与 key[] 中的正确答案进行比较,后者在每个索引中都有一个 T/F。然后,如果他们的答案是正确的,我将 1 添加到 points[] 中的相关索引,稍后将找到 points[] 的总和以找到数字满分十级。

我的问题是,用于定义学生的原始答案字符串的字符串 origAns 出现 Java Error cannot find Symbol。我已经尝试将 origAns 的实例化放在每个不同的 for 循环中,但我无法让程序运行。 Int i 用于跟踪每个特定学生 - 我有四个并行数组,它们将全部记录学生的 ID 号、数字等级、字母等级和原始答案。这就是 i 的目的,遍历每个学生。然后应该使用 j 遍历每个原始学生答案字符串并将其与正确答案进行比较...从逻辑上讲,我把它放在哪里对我来说很有意义,但 java 不同意。请帮助我理解这个错误!

for (int i = 0; i < studentAnswer.length; i++){
String origAns = studentAnswer[i];
for (int j = 0; j < key.length; j++){
if (origAns.substring[j] == key[j]){
//substring of index checked against same index of key
points[j] = 1;
}
if (origAns.substring[j] != key[j]){
points[j] = 0;
}
}
}

最佳答案

听起来您正在尝试调用 substring 方法 - 但您正在尝试访问它,就好像它是一个字段一样。所以第一个改变是:

if (origAns.substring(j) == key[j])

除了将比较字符串 references 而不是 contents ,所以你可能想要:

if (origAns.substring(j).equals(key[j]))

实际上,我怀疑您希望 charAt 获取单个字符 - substring 将返回一个包含指定索引后所有内容的字符串:

if (origAns.charAt(j) == key[j])

... 这里 key 将是一个 char[]

您还可以通过使用 else 子句来避免进行“相反”比较。

您还应该更仔细地缩进代码,以提高可读性。例如:

for (int i = 0; i < studentAnswer.length; i++) {
String origAns = studentAnswer[i];
for (int j = 0; j < key.length; j++) {
if (origAns.charAt(j) == key[j]) {
points[j] = 1;
} else {
points[j] = 0;
}
}
}

现在,您可以将其更改为使用条件 表达式而不是 if/else:

for (int i = 0; i < studentAnswer.length; i++) {
String origAns = studentAnswer[i];
for (int j = 0; j < key.length; j++) {
points[j] = origAns.charAt(j) == key[j] ? 1 : 0;
}
}

关于Java 找不到循环符号,逻辑问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9099239/

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