2012-03-27 113 views
2

創建一個名爲getNextProjectIndex()的方法,該方法返回一個int, 將獲取包含-1.0的projects數組的下一個索引。查找 項目數組中包含-1.0的下一項,並返回數組索引的 。如果數組爲 已滿,則此方法應該返回-1。 -1是一個通用標誌,用於指示應該返回非負整數的方法中的失敗。正確調用方法:(Java)

我無法在我的主要方法中調用此方法。問題在於我的getNextProjectIndex方法或我的主要方法是如何調用它的?

public double getNextProjectIndex() 
    { 
    int i = 0; 
    int full = -1; 
    while(i < projects.length) 
    { 
     if (projects[i] == -1) 
     { 

     return i; 
     } 
     else if (i == (projects.length - 1) && projects[i] != -1) 
     { 
     return full; 
     } 

    } 

    return i; 

    } 

這裏是我的主要方法:

public class Main { 

    public static void main(String [ ] args) 
    { 
    Student testStudent = new Student("BL", "Hill", 34); 
    int i = 0; 
    System.out.println(testStudent.getFname() + " " + testStudent.getLname()); 

    while(i < 5) 
    { 
     if(testStudent.getNextProjectIndex() != 0) 
     {  
     testStudent.setProjectScore(10.0, i); 
     System.out.println("Scores are: "+ testStudent.getProjectScore(i)); 
     } 


     i++; 
    } 


    } 

} 

當程序只運行一個分數顯示,而不是5分。它並沒有完全貫穿循環。如果數組中的所有插槽都已填充,則只應從該方法返回-1。

+3

那麼你有什麼「麻煩」? – 2012-03-27 15:24:46

+0

您能否更具體地瞭解您所看到的問題? – dasblinkenlight 2012-03-27 15:25:48

+1

我至少在2年內第10次看到這個家庭作業。你必須有一個可怕的講師。 – 2012-03-27 15:28:36

回答

2

我在猜測你的程序掛起了。在while循環中getNextProjectIndex(),i從不增加,從而導致無限循環。

- 編輯 - 此外,你必須在方法嘗試一些克魯夫特:

public int getNextProjectIndex() 
{ 
    int i = 0; 
    while(i < projects.length) { 
    if (projects[i] == -1) 
     return i; 
    ++i; 
    } 
    return -1; 
} 

- 編輯改爲while循環,因爲這顯然是必需的。

+0

這似乎解決了這個問題。非常感謝! – MontyTheMack 2012-03-27 15:32:56

+0

必須使用while循環,但謝謝! – MontyTheMack 2012-03-27 15:37:56

4

創建一個名爲getNextProjectIndex()方法返回一個int

你已經宣佈你的方法返回一個雙,即使規範說返回一個int,而你正試圖在函數中返回int i

public double getNextProjectIndex() 
     ^^^^^^ 
+0

謝謝。接得好! – MontyTheMack 2012-03-27 15:32:32

1

它似乎並沒有增加getNextProjectIndex中的while循環。