在外部方法中填充数组并将计数返回到主

时间:2016-12-02 22:00:10

标签: java arrays methods

我正在尝试编写一个代码,使用main来询问用户想要的数字,然后用户输入它们。然后在外部方法中,我需要从数组中获取这些数字并找到均匀且大于60的数字。之后,我需要将这两个数字打印回主要数据。这就是我所拥有的:

public class arrayCounter
{//begin class
public static void main(String[]args)
{//begin main method
  java.util.Scanner input = new java.util.Scanner(System.in);
  System.out.println();

  double greaterThan = 0;
  double evenNumber = 0;

  System.out.println("Please enter the number of intergers you want to put into the array.");
  int numbers = input.nextInt();
  int[] arrayInt = new int[numbers];
  int i = 0;

  for (i =0; i < arrayInt.length; i++){//begin for loop
      System.out.println("Please enter in those numbers now.");
      arrayInt[i] = input.nextInt();
      }//end for loop

     System.out.println("There are  " + greaterThan + " numbers that are greater than 60.");
     System.out.println("The even numbers are " + evenNumber + " in the array.");
}//end main



public static double arrayCounter (double greaterThan, double evenNumber){//begins outside method
  int i = 0;
  int numbers = 0;
  int[] arrayInt = new int[numbers];
  for (i = 0; i < arrayInt.length; i++){//begins for loop
     if(arrayInt[i] <= 60){//begin if loop
     greaterThan++;
     return greaterThan;
    }//end if loop
  }//end for loop

     if(arrayInt[i] % 2 == 0){//begin if loop
     evenNumber++;
     return evenNumber;
  }//end if loop
   return 0;
 }//end outside method
}//end class

当我在NetBeans和Putty中编译它时,它编译得很好,但它实际上并没有在答案中给我任何数字,只有0.它会说: “有0.0个大于60的数字。 数组中的偶数为0.0。“

如果没有得到正确的数字,我做错了什么?

1 个答案:

答案 0 :(得分:0)

首先,您在arrayCounter中一次返回一个值,这样您就无法获得这两个变量。我想知道你是否认为它使用引用/指针就像C / C ++一样?它没有那样的工作。

而是在类中声明变量,使它们可以作为范围的一部分重用。

public class arrayCounter  
{//begin class  
double greaterThan = 0.0;  
double evenNumber = 0.0;  

然后,只需在arrayCounter方法中添加/增加类变量,就像下面所做的那样。

greaterThan++; evenNumber++;

既然您没有尝试返回值,那么让我们删除return语句,输入参数,并将返回类型从double更改为void,如下所示。

public static void arrayCounter () {

最后,在Main中,您需要在到达System.out行之前实际调用您的函数 arrayCounter();

一旦进行了这些更改,您可能需要做一些改进和错误处理,但您几乎就在那里。