【问题标题】:Filling an array in an outside method and returning count to main在外部方法中填充数组并将计数返回给 main
【发布时间】:2016-12-02 22:00:09
【问题描述】:

我正在尝试编写一个代码,该代码将使用 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。”

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

【问题讨论】:

  • 这里有一些问题。

标签: java arrays methods


【解决方案1】:

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

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

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

然后类变量只需要像下面那样在你的 arrayCounter 方法中添加/递增。

greaterThan++; evenNumber++;

既然您不尝试返回值,让我们摆脱返回语句、输入参数,并将返回类型从 double 更改为 void,如下所示。

public static void arrayCounter () {

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

一旦进行了这些更改,您可能还需要进行一些改进和错误处理,但您已经快到了。

【讨论】:

    猜你喜欢
    • 2012-08-09
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    • 2020-02-21
    • 2011-06-30
    • 1970-01-01
    相关资源
    最近更新 更多