2
public class negativeTest {

    public static int Negativenum (int[] array) {

        int negative = 0;
        for (int i = 0; i < array.length; i++){
            if(array[i] < 0){
                negative = negative + 1;
            }
            System.out.println(negative);

        }

    }

}

我试图计算数组中有多少元素是负数。这就是我到目前为止所拥有的。我的问题是:eclipse 告诉我应该返回一个 void 而不是 static int?我如何在不使用 void 的情况下做到这一点?

我想用

public static int negativenum(int[] array){

我可以让这个工作的唯一方法是创建一个包含正数和负数的数组并计算它们,但我希望能够有一种方法来做到这一点而无需创建数字数组。你能帮助我吗?

4

4 回答 4

2

尝试给出一个 return 语句,你的方法期望一个 int 作为返回参数。因此它会给出编译器错误。

public class negativeTest {

    public static int Negativenum (int[] array) {

        int negative = 0;
        for (int i = 0; i < array.length; i++){
            if(array[i] < 0){
                negative = negative + 1;
            }
            System.out.println(negative);

        }
      return negative;
    }

}

你得到的错误是因为你没有main在类中声明函数。

您必须Negativenum 从主函数调用。

你可以这样做:

 public static void main (String args[])
 {
 negativeTest  nt = new negativeTest();
 int [] array = new int[]{ 100,200 };  
 int count = nt.Negativenum(array);
 System.out.println(count);  // It will print **2** 
 }

关于您在评论中提出的疑问。

只有当您想使用调用函数的返回值时,您才必须从函数返回任何内容。否则,如果您只想在控制台上打印该值或记录该值,您可以在 negativeTest 函数中轻松完成,并且可以将此函数的返回类型更改为 void。

仅供参考,您的类名不应以小写字符开头。

于 2012-10-08T04:02:27.363 回答
1

该错误是因为您没有从预期返回int.

如果您希望函数计算负数的个数并返回计数,以便函数的调用者获取计数,您可以添加一个

return negative;

在函数结束之前。

或者,如果您不想从函数返回任何内容并且只想将计数打印为函数调用的一部分,则可以将函数的返回类型从更改intvoid

public static void Negativenum (int[] array) {
于 2012-10-08T04:01:51.030 回答
1

您的函数签名建议返回类型为 int,但您没有从函数返回任何内容。我怀疑这就是 Eclipse 建议您更改函数签名以返回 void 的原因。

如果添加return negative;它应该避免来自 Eclipse 的通知。

如果您的意图是简单地打印计数,那么您应该更改返回类型。

于 2012-10-08T04:03:19.610 回答
0

如果您不想返回任何内容,请将您的方法签名设置为 void,但添加一个 out 变量,如下所示:

public static void NegativeNum(int[] array, out int negative)
{
     negative = 0;
     foreach(int i in array) { if (i < 0) negative++;
}

然后您只需在调用此方法的任何位置声明否定,并将其作为输出变量传递:

int negative = 0;
NegativeNum(array, out negative);

在该调用之后,negative 将包含由该方法确定的负数的计数。

于 2012-10-08T04:16:00.453 回答