java如何使用单个for循环执行多个数组操作?
所以我被指示做下面的事情,我可以让它运行得很好,但是它只需要一个for循环,我就是不知道怎么做。任何帮助都将不胜感激。这就是我想到的。我需要能够得到总数,平均数,最高数和最低数与一个循环
public static void arrayTotalAndAverage(int[] array) {
int[] numbers = { 10, 4, 13, 29, 57, 92, 114, 212, 3, 88, 36, 101, 77, 42, 209 };
int total = 0;
double average = 0;
int highest = numbers[0];
int lowest = numbers[0];
for (int i = 0; i < numbers.length; i++) {
total += numbers[i];
average = total / numbers.length;
}
for (int i = 1; i < numbers.length; i++) {
if (numbers[i] > highest)
highest = numbers[i];
if (numbers[i] < lowest)
lowest = numbers[i];
}
System.out.println("Total");
System.out.println(total);
System.out.println("Average");
System.out.println(average);
System.out.println("Highest number");
System.out.println(highest);
System.out.println("Lowest number");
System.out.println(lowest);
}
# 1 楼答案
你可以像这样在一个循环中完成所有的操作。平均值可以从循环中移出
# 2 楼答案
只需将第二个循环与第一个循环合并即可。请注意,应该只在循环结束时计算平均值,并且必须首先将其中一个操作数转换为
double
,以避免整数除法的截断Demo
输出:
# 3 楼答案
您可以通过StreamAPI完成所有这些操作
# 4 楼答案
实际上,在这里进行操作的最有效方法可能是只迭代数组一次,然后跟踪最小值、最大值、平均值和总值的状态:
这张照片是: