2013-01-05 47 views
1

TERADENWOORDEN是[0] [0] =書和[0] [1] =環的主陣列爪哇:數組/方法:無法找到符號

CATEGORIES =類別

的量

geefNamenCat是一種方法,返回input.readString()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);

更新:

現在我得到一個 '缺少return語句'

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

+1爲變量名 – radai

+0

這是荷蘭人,對不起人:p – Jente

回答

2

據我可以看到你的方法woordBepalen不能編譯,因爲編譯器不能確定它有一個明確的值返回

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

編輯

你必須定義在沒有pTERADENWOORDEN[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是做正確的事。另一種可能性是拋出異常

+0

+1找到他的下一個問題... – SJuan76

+0

Sjuan76預測未來。我想這個也有一些簡單的解決方法呢? – Jente

+0

@Jente查看我的編輯 – gefei

5

你聲明String gekozenCat = geefNamenCat();在你的do-while內部試圖在循環之外訪問它。 gekozenCat僅限於有限制與 - 在您的do-while。如果你想在你的do-while之外訪問,你可以在do-while之外聲明。

+0

我已經做了一個小小的更新,這個應該是訣竅呢? – Jente

+1

你爲什麼不嘗試編譯它? – SJuan76

+0

@ente yepp ..這將清除編譯器錯誤。 – PermGenError

1

gekozenCat的範圍在do..while塊內。在該塊之外,你還沒有定義它,因此導致錯誤。

一般而言,如果您有一個塊{},那麼在該塊內定義的變量將僅在該塊內部(並且在它們被定義之後)內可用。