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){
只有这样才能使这个工作是创建一个具有正数和负数的数组并计算它们,但我希望能够在不创建数字数组的情况下使用方法。你能救我吗?
答案 0 :(得分: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。
仅供参考,您不应该使用小写字符开始您的类名。
答案 1 :(得分:1)
错误是因为您没有从预期返回int
的函数返回任何内容。
如果你想让函数计算负数的数量并返回计数,以便函数的调用者得到计数,你可以添加一个
return negative;
在函数结束之前。
或者,如果您不想从函数返回任何内容并希望仅将函数作为函数调用的一部分打印,则可以将函数的返回类型从int
更改为{{ 1}}:
void
答案 2 :(得分:1)
您的函数签名建议返回类型为int,但您不会从函数返回任何内容。我怀疑这就是为什么Eclipse建议您更改函数签名以返回void。
如果你添加return negative;
,它应该避免Eclipse发出通知。
如果您打算简单地打印计数,那么您应该更改返回类型。
答案 3 :(得分:0)
如果您不想返回任何内容,请将您的方法签名设置为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);
在该呼叫之后,否定将包含由该方法确定的负数的计数。