2017-08-09 63 views
-1
private int repetition; 

    public int repetition(int sum){ 
    Scanner sc = new Scanner(System.in); 

    System.out.println("Enter 5 numbers greater than 0: "); 

    for (int i = 0; i < number.length; i++){ 

     System.out.println("Please enter number: "); 
     number[i] = sc.nextInt(); 

     if (number[i] < 0){ 
     System.out.println("Please enter a number greater than 0"); 
     i--; 
     sum -= number[i]; 
     } 
     sum += number[i]; 
    } 
    return int sum; 
    } 
    repetition(sum); 
} 

我得到一個錯誤,說我有一個無效的方法聲明,但我似乎無法弄清楚我做錯了什麼。不正確的方法聲明或方法重複?

+0

在哪條線路?並給出數字的定義[]' – azro

+0

歡迎來到Stack Overflow!請查看我們的[SO問題清單](http://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist)來幫助你提出一個好問題,從而得到一個很好的答案。 –

+2

你認爲最後一次'重複(總和)'應該做什麼?並'返回整數;'? – user2357112

回答

-1

倒數第二行。您的方法調用不在任何方法中。

0

請仔細閱讀上述評論

我已經修改了代碼,以便它的工作原理,並添加註釋內嵌

// you need a `main` as the entry point to your program 
public static void main(String... args) { 
    // my class is called `Main` so I instantiate it and call your method 
    System.out.println("the sum is " + new Main().repetition()); 

} 

// no parameters necessary 
public int repetition(){ 
    Scanner sc = new Scanner(System.in); 

    // keep a sum 
    int sum = 0; 
    System.out.println("Enter 5 numbers greater than 0: "); 

    for (int i = 0; i < 5; i++){ // loop five times 

     System.out.println("Please enter number: "); 
     // store into a local variable 
     int in = sc.nextInt(); 

     // if less than zero then goto the top of the loop again 
     if (in < 0){ 
     System.out.println("Please enter a number greater than 0"); 
     i--; 
     continue; 
     } 

     // else add it to the sum 
     sum += in; 
    } 

    // finally return the sum 
    return sum; 
    }