2017-08-09 87 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; 
    }