如何在Java中对整数输入求和,并在程序结束时在数组中显示结果?

时间:2017-03-01 21:38:49

标签: java arrays

我正在尝试创建一个“计算器”,除了它需要打印用于构成总和的每个元素。当用户连续两次输入0时,需要在程序结束时进行数组元素的打印。

输入输入后,整数值将存储在数组中。一旦到达程序结束,将打印该数组的内容。但是,如果尚未到达程序结束,则程序会在用户添加连续输入时继续。

目前,该程序一次只打印一个元素,而不是用于计算总数的每个元素。我花了好几个小时试图调试,任何指导都会非常感谢!

import java.util.*;

public class AddingMachine {

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    boolean justStarting = true;
    int total = 0;
    int subtotal = 0;
    int input;
    int last = 1;
    int MAXIMUM_NUMBER_OF_INPUTS = 100;
    while (true) {
        input = scanner.nextInt();
        if (input == 0) {
            if (last == 0) {
                System.out.println("total " + total);
                return;
            }
            System.out.println("subtotal " + subtotal);
            total += subtotal;
            subtotal = 0;
        }
        subtotal += input;
        last = input;
        int[] numbers = new int[args.length];
        for (int i = 0; i < args.length; i++) {
            numbers[i] = last;
        }
        System.out.println(Arrays.toString(numbers));
    }
}

2 个答案:

答案 0 :(得分:0)

在对循环中的输入求和时,可以将用户输入存储到整数列表中。一旦您需要重新打印它们,您就可以遍历List并打印您存储的元素。

示例:

List<Integer> storedUserInput = new ArrayList<>();
while (true) {
        input = scanner.nextInt();
        storedUserInput.add(input);
    if (input == 0) {
        if (last == 0) {
            for(Integer i : storedUserInput){
                 System.out.print(i + " + ");
            }
            System.out.println("total " + total);
            return;
        }
        System.out.println("subtotal " + subtotal);
        total += subtotal;
        subtotal = 0;
    }

}

答案 1 :(得分:0)

Table C循环中,每次都重新初始化数组:

ID        Device        Clicks        Percentage    UpdatedDevice
1         A             10            50            Others
1         B             10            50            Others
2         A             1             5             C
2         C             19            95            C

所以以前输入的任何值都会丢失。此外,whileint[] numbers = new int[args.length]; 循环的目的尚不清楚。

此外,除非使用数组是必需的,否则您实际上不需要数组。您可以使用for并附加输入的值。