2014-09-12 58 views
0

這是我應該調用方法「了methodA」中的部分功能:遇到問題聲明和調用包括數組和整數

for(GenNumber = 1; GenNumber < generations; GenNumber++) 
    { 
     for(cellNumber = 0; cellNumber < totalCount; cellNumber++) 
     { 
      row[cellNumber] = cells[cellNumber]; 
     } 
     for(cellNumber = 1; cellNumber <= count; cellNumber++) 
     { 
      if(rule.equals(ruleA) == true) 
      { 
       row[cellNumber] = methodA(cellNumber, row); //here I try to call it 
      } 

這是方法「了methodA」:

public static boolean methodA(int cellNumber, int row) { 
    int state = 0; 
    if(row[cellNumber-1] == true) 
    { 
     state++; 
    } 
    if(row[cellNumber+1] == true) 
    { 
     state++; 
    } 
    if(row[cellNumber] == true && state != 1) 
    { 
     return false; 
    } 
    else if(row[cellNumber] == false && state != 0) 
    { 
     return true; 
    } 
} 

問題是我不斷收到10個錯誤說「數組需要,但int找到」。我顯然做錯了事,我什至不知道。請注意,我對編程非常陌生,請不要太苛刻。 :)

+0

行是int類型的,而不是一個陣列的方法簽名......你的函數參數更改爲公共靜態布爾了methodA(INT cellNumber ,int [] row) – StackFlowed 2014-09-12 15:07:30

回答

2

+0

嗨,謝謝你的回答。我做了這個,現在我得到另一個錯誤:「不兼容的類型:布爾[]不能轉換爲int []。我應該怎麼做? – Ken 2014-09-12 15:23:44

+0

行是什麼類型?是它布爾[]行?然後改變public static boolean methodA(int cellNumber,boolean [] row) – StackFlowed 2014-09-12 15:24:48

+0

啊,非常感謝!我最終得到了我的代碼! – Ken 2014-09-12 15:27:39

0

methodA原型說,它需要兩個int參數,但與下面的行一個int和int[](即整型數組)調用它:

row[cellNumber] = methodA(cellNumber, row); 

要麼改變你的函數調用或其原型。的了methodA在foloving方式

public static boolean methodA(int cellNumber, int[] row) 
+0

非常感謝您的回答! – Ken 2014-09-12 15:25:00

0

更改聲明是int類型,而不是一個數組的......改變功能參數採取int數組...

public static boolean methodA(int cellNumber, int[] row) 
+0

非常感謝您的回答! – Ken 2014-09-12 15:25:36

0

請更改代碼如下

for(GenNumber = 1; GenNumber < generations; GenNumber++) 
    { 
     for(cellNumber = 0; cellNumber < totalCount; cellNumber++) 
     { 
      row[cellNumber] = cells[cellNumber]; 
     } 
     for(cellNumber = 1; cellNumber <= count; cellNumber++) 
     { 
      if(rule.equals(ruleA) == true) 
      { 
       row[cellNumber] = methodA(cellNumber, row); //here I try to call it 
      } 

這是方法 「了methodA」:

public static boolean methodA(int cellNumber, int[] row) { 
int state = 0; 
if(row[cellNumber-1] == true) 
{ 
    state++; 
} 
if(row[cellNumber+1] == true) 
{ 
    state++; 
} 
if(row[cellNumber] == true && state != 1) 
{ 
    return false; 
} 
else if(row[cellNumber] == false && state != 0) 
{ 
    return true; 
} 

}

您需要更改方法「了methodA」

+0

嗨,非常感謝你的回答。我這樣做了,現在我又得到另一個錯誤:「不兼容的類型:boolean []不能轉換爲int []。我該怎麼辦? – Ken 2014-09-12 15:24:24

+0

methodA(int cellNumber,int [] row)更改爲methodA(int cellNumber,boolean [] row) – Ajit 2014-09-12 15:27:34