Java 数组和用户输入递归
因此,我试图编写一个递归方法来求整数数组列表的和,并创建一个客户端来测试它 我的班级是:Java 数组和用户输入递归,java,arrays,recursion,user-input,Java,Arrays,Recursion,User Input,因此,我试图编写一个递归方法来求整数数组列表的和,并创建一个客户端来测试它 我的班级是: import java.util.ArrayList; public class SumArray { public static int ArraySum(int[]arrayList, int sum, int size) { sum = sum + arrayList[size]; size--; while(size >= 0)
import java.util.ArrayList;
public class SumArray
{
public static int ArraySum(int[]arrayList, int sum, int size)
{
sum = sum + arrayList[size];
size--;
while(size >= 0)
{
return ArraySum(arrayList, sum, size);
}
return sum;
}
}
我的客户是:
import java.util.ArrayList;
public class ArraySumClient
{
public static void main()
{
System.out.print("The sum of the array is: ");
SumArray r = new SumArray();
int[] myList = new int[5];
myList[0] = 1;
myList[1] = 2;
myList[2] = 3;
myList[3] = 4;
int size = myList.length-1;
System.out.println(r.ArraySum(myList, 0, size));
}
}
这些都是编译和工作。但是,我正在尝试为用户找到一种方法来输入数组大小和数组中的数字,而不是在客户端中输入数组大小和数字。您可以使用java scanner从cmd提示符获取输入
您可以尝试使用
ArrayList
而不是数组。它将允许您根据需要动态添加任意数量的项目:
public static void main() {
List<Integer> myList = new ArrayList<Integer>();
myList.add(1);
myList.add(2);
myList.add(3);
myList.add(4);
// compute sum
int sum = 0;
for (Integer value : myList) {
sum += value;
}
System.out.println("The sum is " + sum);
}
publicstaticvoidmain(){
List myList=new ArrayList();
添加(1);
添加(2);
添加(3);
添加(4);
//计算总和
整数和=0;
for(整数值:myList){
总和+=数值;
}
System.out.println(“总和为”+总和);
}
使用这种方法,您不需要询问用户打算添加多少项。正如@Satya所建议的,您可以将命令行中的输入作为命令行参数读取,并将其提取为:
Integer[] array = Stream.of(args).map(Integer::parseInt).toArray(size -> new Integer[size]);
您不想将数组的长度传递给方法ArraySum
,我想您这样做是因为无法从数组中删除元素。一种方法是使用Arrays.copyOf()
将数组的一部分复制为另一个数组
我认为使用
列出这些情况总是好的。从命令提示符读取输入值。只需谷歌一下。而
可以安全地替换为如果
,因为你的“循环”在第一次迭代后永远不会存在。不仅仅是你想要在客户端输入数字的大小。这些应该是动态的,当然!我知道。最好给出一些建议,而不是在这里编写代码。;)