我正在尝试创建一个“计算器”,除了它需要打印用于构成总和的每个元素。当用户连续两次输入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));
}
}
答案 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
所以以前输入的任何值都会丢失。此外,while
中int[] numbers = new int[args.length];
循环的目的尚不清楚。
此外,除非使用数组是必需的,否则您实际上不需要数组。您可以使用for
并附加输入的值。