1

TERADENWOORDEN是 [0][0] = book 和 [0][1] = 指环王的数组

CATEGORIES= 类别数量

geefNamenCat是一个返回input.readString()to的方法gekozenCat

我在这里做错了吗?

public void catKiezen() {
   boolean bevatGekozen = false;
   String gekozenCat
    do {
        gekozenCat = geefNamenCat();
        for (String[] TeradenwoordenLijst : Arrays.asList(TERADENWOORDEN))
            if (Arrays.asList(TeradenwoordenLijst).contains(gekozenCat)) {
                bevatGekozen = true;
                break;
            }
        if (! bevatGekozen) {
            System.out.println("De opgegeven categorie is ongeldig.");
        }
    } while (! bevatGekozen);
   String woordVanCat = woordBepalen (gekozenCat);
}

public String woordBepalen(String teBepalenWoordVanCat) {
    for (int p = 0; p < CATEGORIES; p++)
       if (TERADENWOORDEN[p][0].equals(teBepalenWoordVanCat))
       return TERADENWOORDEN[p][1];
}

最后我得到了一条错误cannot find symbol线String woordVanCat = woordBepalen (gekozenCat);

更新:

我现在收到“缺少退货声明”

public String woordBepalen(String teBepalenWoordVanCat) {
    for (int p = 0; p < CATEGORIES; p++) {
        if (TERADENWOORDEN[p][0].equals(teBepalenWoordVanCat)) {
        return TERADENWOORDEN[p][1];
        }
    }
}
4

3 回答 3

5

您已String gekozenCat = geefNamenCat();在 do-while 中声明并尝试在循环外访问它。gekozenCat局限在你的do-while. do-while如果您想在您的执行时间之外访问它,请在外面声明它。

于 2013-01-05T17:54:28.630 回答
2

据我所见,您的方法woordBepalen无法编译,因为编译器不确定它是否具有明确定义的返回值

public String woordBepalen(String teBepalenWoordVanCat) {
    for (int p = 0; p < CATEGORIES; p++)
       if (TERADENWOORDEN[p][0].equals(teBepalenWoordVanCat))
       return TERADENWOORDEN[p][1];
}

编辑

您必须定义在没有p TERADENWOORDEN[p][0].equals(teBepalenWoordVanCat)保留的情况下返回的内容。像这样:

 public String woordBepalen(String teBepalenWoordVanCat) {
        for (int p = 0; p < CATEGORIES; p++) {
           if (TERADENWOORDEN[p][0].equals(teBepalenWoordVanCat))
             return TERADENWOORDEN[p][1];
        }
        return null;
 }

由您决定返回null是否是正确的做法。另一种可能性是抛出异常

于 2013-01-05T17:55:59.867 回答
1

的范围gekozenCatdo..while块内。在该块之外,您尚未定义它,从而导致错误。

通常,如果您有一个块{ },则在该块内定义的变量将仅在该块内可用(并且在它们被定义之后)。

于 2013-01-05T17:56:05.047 回答