所以我的任务是要求用户在数组中输入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.
答案 0 :(得分:1)
您的代码中有几个问题:
int[] numbers = new int[10];
中的声明main
毫无用处。将其删除,并将numbers.length
替换为PrintIt.numbers.length
int
,而不是数组。让他们void
,并在没有System.out.print
的情况下调用它们。return
和PrintOrder
方法中删除不必要的PrintReverse
语句。这应解决问题(demo)。