返回数组的问题
问题描述:
所以我的任务是要求用户输入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]在返回它读取我为0,只输出的第一要素在数组中。我看了很久,我无法弄清楚这一点。
很明显,我知道需要返回一些东西,但是我放的任何东西都不起作用。例如,当我试图返回数组,数字[I],它只返回的第一个元素,因为变量具有0
答
值你在你的代码的几个问题:
- 的在
main
中的声明int[] numbers = new int[10];
是无用的。删除它,并将numbers.length
替换为PrintIt.numbers.length
- 您的方法返回
int
s,而不是数组。使它们成为void
,然后在没有System.out.print
的情况下打电话给他们。 - 删除
PrintOrder
和PrintReverse
方法中不必要的return
陈述。
这应该解决问题(demo)。
这样做。 我不确定我是否需要在主体中定义数字[],所以我确保它是安全的。出于这个原因,我也保留了主要的numbers.length。 我有一种感觉,我需要通过使用void来摆脱返回,但无法设法将2和2放在一起。 – 2014-11-21 14:59:32