返回数组的问题

时间:2014-11-21 14:47:13

标签: java arrays

所以我的任务是要求用户在数组中输入10个数字,然后使用测试人员类而不仅仅是主数据按顺序打印数字和逆序。

我遇到了如何返回已传递的数组的问题。到目前为止,这是我的代码:

public class PrintIt
{
   static int[] numbers = new int[10];
   static int i = 0;

   public static int PrintOrder()
   {
       System.out.println("\nList of numbers in order: \n");
       for (int i = 0; i < numbers.length; i++)
       {
           System.out.println(numbers[i]);
       }

       return ;
   }

   public static int PrintReverse()
   {
       System.out.println("\nList of numbers in reverse order: \n");
       for (int i = numbers.length - 1; i >= 0; i--) 
       {
           System.out.println(numbers[i]);
       }

       return ;
   }
}

和测试者类:

import java.util.Scanner;
public class PrintItTester
{
   public static void main (String [] args)
   {
      Scanner input = new Scanner(System.in);

      int i = 0;
      int[] numbers = new int[10];

      System.out.println("\nPlease input " + 10 + " numbers.");

      for (i=0; i < numbers.length; i++)
      {
          PrintIt.numbers[i] = input.nextInt();    
      }

      System.out.print(PrintIt.PrintOrder());
      System.out.print(PrintIt.PrintReverse());
   }
}

当我在返回中使用数字[i]运行代码时,它将i读为0并且仅输出数组中的第一个元素。我已经找了很长时间,我无法解决这个问题。

我知道,显然,需要返回一些东西,但无论我放什么都行不通。例如,当我尝试返回数组[number]时,它只返回第一个元素,因为变量的值为0.

1 个答案:

答案 0 :(得分:1)

您的代码中有几个问题:

  • int[] numbers = new int[10];中的声明main毫无用处。将其删除,并将numbers.length替换为PrintIt.numbers.length
  • 您的方法返回int,而不是数组。让他们void,并在没有System.out.print的情况下调用它们。
  • returnPrintOrder方法中删除不必要的PrintReverse语句。

这应解决问题(demo)。