public int howMany(String element) {
int amt = 0;
for (int i = 0; i < log.length; i++) {
if (element.equalsIgnoreCase(log[i]))
amt = amt+1;
}
return amt;
}
}
这是我目前的代码。它接受所提供的元素,并通过一个循环计算它以amt形式出现的次数。但是,当我实际运行其中一个期望0以外的数字的测试时,它会失败,因为由于某种原因,无论如何,howMany IS 0给出的任何数字都是如此。即使我在开始时将amt更改为5,当运行如下测试时它仍为0。
public void test_1_match_at_beginning() {
strLog.insert("string 1"); strLog.insert("string 2");
strLog.insert("string 3"); strLog.insert("string 4");
strLog.insert("string 5");
assertEquals(1, strLog.howMany("string 1"));
}
我可以做些什么来解决这个问题?因为在我看来,我不知道甚至造成了什么。
编辑:哎呀。测试阵列版本的测试已被注释掉。实际运行的是链接版本,我还没有改变。很抱歉浪费时间。答案 0 :(得分:0)
您的代码的一个大问题是,您的退货归入了错误的位置。您应该注意到,如果您正确缩进代码。返回现在放在for循环中,这意味着,在检查第一个元素后,它返回amt
。虽然它可能不会导致你描述的问题(总是返回0?),但这肯定是你需要处理的一个大问题。