2013-12-10 72 views
0

我想使用一種方法來返回一個數組的索引值,所以我可以在另一個類中使用它,但我似乎無法使它工作。這裏是我的代碼:如何使用方法返回數組元素的索引?

這一個告訴我,沒有返回聲明。

public int getCourseIndex(String course){ 
    for (int i = 0; i<courses.length; i++) 
     if(course.equals(courses[i])) 
} 

我也試過,我認爲它只是返回0:

public int getCourseIndex(String course){ 
    int total = 0; 
    for (int i = 0; i<courses.length; i++){ 
     if(course.equals(courses[i])){ 
      total++; 
    } 

    return total; 
} 
+0

最簡單的方法是創建一個'INT index'變量。在你的for循環中,如果你找到了一個'course',把這個值設置爲'i',並使用break來打斷循環;' –

+0

它是否曾經在第二個代碼snipet中輸入if代碼塊? – Adarsh

+0

你能告訴我你的意思嗎? – user2848565

回答

3

你需要去通過陣列與一個for循環,如果你找到你要找的,返回電流回路可變值(在以下代碼中爲i值),它實際上代表發現它的數組中的索引。

如果循環結束並且沒有返回,那意味着您正在查找的內容不在數組中。那麼你應該回報一些事情來告訴你這個事實。它需要是不能從for循環中返回的東西,它們是負數(通常是-1)。

public int getCourseIndex(String course){ 
    for (int i = 0; i<courses.length; i++){ 
     if(course.equals(courses[i])){ 
      return i; 
     } 
    } 
    return -1; // not found 
} 
+0

'for'循環沒有右括號:D – async

+1

@ user16547:哦,謝謝。但爲了捍衛自己,他也沒有在這個問題上。 ;) – zbr

0

要返回,你應該遍歷循環,並返回i當您的驗證結果true索引。

如果找不到您有兩個選項,則返回-1或拋出異常。

public int getCourseIndex(String course){ 

for (int i = 0; i < courses.length; i++){ 
    if(course.equals(courses[i])){ 
    return i; 
    } 
} 
return -1; 
} 
2

您可以按以下使用java.util.Arrays

public int getCourseIndex(String course) { 
    return (Arrays.asList(courses)).indexOf(course); 
} 

或者,如果你想使用循環來計算,您可以:

public int getCourseIndex(String course) { 
    for (int i = 0; i < courses.length; i++) 
     if (course.equals(courses[i])) { 
      return i; 
     } 
    return -1; 
} 
+2

我喜歡這個答案。將OP公開給數組 - 有用的預見。 – chronodekar