【发布时间】:2014-09-23 23:39:13
【问题描述】:
我正在尝试创建一个程序来测试数组中每十个位置中“正确”答案的数量。我发现即使满足条件,带有条件textarray[i * 10 + k] == answerarray[k] 的 if 循环也不会执行(我已经验证了这一点)。
else if 语句 textarray[i * 10 + k] == ' ' 正在工作,所以我不明白为什么前者没有。任何帮助将不胜感激!
char[] textarray = new char[textfile.length()];
for (int i = 0; i < textfile.length(); i++) {
textarray[i] = textfile.charAt(i);
}
double[] eachquestiona = new double[10];
double[] eachquestionb = new double[10];
double[] eachquestionc = new double[10];
double[] eachquestiond = new double[10];
double[] eachquestione = new double[10];
//stores how many questions each student got correct, incorrect or left blank
int[] studentcorrect = new int[textfile.length() / 10];
int[] studentincorrect = new int[textfile.length() / 10];
int[] studentblank = new int[textfile.length() / 10];
for (int i = 0; i < textfile.length() / 10; i++) {
for (int k = 0; k < 10; k++) {
if (textarray[i * 10 + k] == 'A') {
eachquestiona[i]++;
}
if (textarray[i * 10 + k] == 'B') {
eachquestionb[i]++;
}
if (textarray[i * 10 + k] == 'C') {
eachquestionc[i]++;
}
if (textarray[i * 10 + k] == 'D') {
eachquestiond[i]++;
}
if (textarray[i * 10 + k] == 'E') {
eachquestione[i]++;
}
if (textarray[i * 10 + k] == answerarray[k]) {
studentcorrect[i]++;
}
else if (textarray[i * 10 + k] == ' ') {
studentblank[i]++;
}
else {
studentincorrect[i]++;
}
}
}
【问题讨论】:
-
我认为重复的
for (int i = 0; ...是错字? -
answerarray是如何声明的? -
顺便说一句,
String有一个toCharArray()方法可以让你的第一个循环变得不必要。 -
你试过简单的调试语句吗?也许这会有所帮助:
System.out.println(textarray[i * 10 + k] + " " + answerarray[k]); -
谢谢大家,我想通了。原来这是我的代码早期的一个问题。我有 for (int i = 0; i
标签: java if-statement char