尝试使用 arrayList 制作计算器。用户插入整数,然后键入加、减、乘或除,它们对这些整数执行数学运算,当用户键入 done 时,程序结束。这是程序:
import java.util.Scanner;
import java.util.ArrayList;
class just{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
ArrayList<Integer> element = new ArrayList<Integer>();
String operation;
int counter;
int result = 0;
while(true){
operation = (input.nextLine()).trim();
if(operation !=null && !operation.isEmpty()){
if (operation.equalsIgnoreCase("done")){ break;}
try{
counter = Integer.parseInt(operation);
element.add(counter);
}catch(NumberFormatException e){
if("add".equalsIgnoreCase(operation)){
for( int i : element){
result += i;
}
System.out.println("Result is: "+result);
element.clear();
}else if("subtract".equalsIgnoreCase(operation…
for( int i : element){
result -= i;
}
System.out.println("Result is: "+result);
element.clear();
}else if("multiply".equalsIgnoreCase(operation…
for( int i : element){
result *= i;
}
System.out.println("Result is: "+result);
element.clear();
}else if("divide".equalsIgnoreCase(operation))…
for( int i : element){
result /= i;
}
System.out.println("Result is: "+result);
element.clear();
}else{
System.out.println("Put some numbers, then type add , multiply, subtract or divide to get the result, or type done to exit.");
}
}
}else{
System.out.println("Please either enter an integer or type done.");
}
}
}
}
Add
并且subtract
工作正常。Multiply
并且divide
工作也正常,但是如果第一次操作是multiply
或divide
结果变为0
,因为变量的初始值为result
0,或者如果我为multiply
和divide
初始值1
而不是创建不同的变量0
,它仍然不起作用,因为如果我做出不同的变量multiply
,divide
然后我必须将变量与它相乘(因为先前和/或result
的执行结果,并且作为初始值,它现在将一直产生。如何克服这个问题?add
subtract
result
0
0