繁体   English   中英

创建一个可以计算数组中负数的方法

[英]create a method that can count negative numbers in an array

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);

        }

    }

}

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

我想用

public static int negativenum(int[] array){

我能使它正常工作的唯一方法是创建一个带有正负数的数组并对其进行计数,但是我希望能够拥有一种无需创建数字数组即可做到这一点的方法。 你能帮助我吗?

尝试给出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。

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

该错误是因为您没有从预期返回int的函数中返回任何内容。

如果您希望函数对负数进行计数并返回计数,以便函数的调用者获得该计数,则可以添加一个

return negative;

在功能结束之前。

另外,如果您不想从函数返回任何内容,而只想在函数调用中打印计数,则可以将函数的返回类型从int更改为void

public static void Negativenum (int[] array) {

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

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

如果您只是想打印计数,则应更改返回类型。

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

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

然后只要在调用此方法的地方声明为负,然后将其作为out变量传入:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM