2014-02-27 96 views
0

所以前兩天,我問一些幫助,並得到了一些好東西... Searching arrays for a value at specific indices在特定索引處搜索數組的值... Pt。 2糾錯

現在我試圖讓儘可能我可以在我自己的,我堅持的的錯誤「類型的表達式必須是一個數組類型,但它決心爲int」在if(lLungArray[i]k] == 1)

int[] lLungArray = {1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1}; 
int lLung; 
private void checkHealth() { 
    // TODO Auto-generated method stub 
    if(MainActivity.panel1 == 0){ 
     if(MainActivity.panel2 == 0){ 
      int[] secondArray = {0,1,8,9}; 
      int lLungCount = 0; 
      for(int i=0;i<lLungArray.length;i++){ 
       for(int k:secondArray){ 
        if(lLungArray[i][k] == 1) //Error here { 
         lLungCount++; 
        } 
       } 
      } 
     } 
} 

我的項目是差不多了,但我無法弄清楚如何解決這個錯誤。如果你讀了我的第一個問題,你會看到我是一個新手,谷歌並沒有太多的幫助。

+0

我相信你通過引用你的上一個問題的答案來提供這段代碼。你需要2維數組。 – Baby

回答

0

lLungArray是一個int的數組,但這裏lLungArray[i][k]你試圖提供2個索引,它將它當作一個數組的數組,這是錯誤的!

更新:基於您的評論,

我想知道,如果lLungArray在位置0,1,8,9和多少實例1只出現1。使用上面的lLungCount最終應該是4.那麼如果(lLungArray [i] == k){會幫助我做什麼?

我想這會幫助你實現你想要的。

private void checkHealth() { 
    int[] secondArray = { 0, 1, 8, 9 }; 
    int lLungCount = 0; 
    for (int k : secondArray) { 
      // If the lLungArray elements at the positions specified by the 
      // elements of secondArray is 1 then increment the lLungCount 
     if (lLungArray[k] == 1) { 
      lLungCount++; 
     } 
    } 
} 
+0

@RJ我想知道'lLungArray'在'0,1,8,9'的位置上有1,1出現了多少個實例。使用上面的'lLungCount'應該以4結束。那麼'if(lLungArray [i] == k){'會幫助我做什麼? –

+0

看起來像'if(lLungArray [1] == k){'會搜索'lLungArray'爲0,1,8或9,而不是在位置0,1,8和9搜索1。再次,我是一個新手,所以我只是試圖把它寫成文字,我可能是錯的。 –

+0

@ user2329162 - 不,它不會那樣做。其實我只是猜測,不知道實際的要求。我更新了答案,以幫助您解決該問題。希望它有助於:) – SudoRahul

0

你聲明的一個維數組:

int[] lLungArray = {1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1}; 

,但您嘗試訪問它像一個二維數組

if(lLungArray[i][k] == 1) 

那不是可能

我想你想像這樣:

secondArray[k] == 1 
+0

Ahhhh。好吧,我認爲這意味着它會在'secondArray'中聲明的位置搜索'lLungArray'。 –

0

lLungArray[i][k]表示第i行第k列(2維陣列)。但是你的數組是一維的。