0
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 给它的任何数字都是 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"));        
}

我能做些什么来解决这个问题?因为在我看来,我什至不知道是什么原因造成的。

编辑:哎呀。测试的数组版本的测试被注释掉了。实际运行的是链接版本,我还没有更改。很抱歉浪费了大家的时间。

4

1 回答 1

0

您的代码的一个大问题是,您的退货放错了地方。您应该注意到,如果您正确缩进您的代码。Return 现在放在 for 循环中,这意味着,在它检查第一个元素之后,它返回amt. 虽然它可能不会导致您描述的问题(总是返回 0?),但这肯定是您需要处理的一个大问题。

于 2013-09-19T02:34:56.543 回答