arrayListを使って電卓を作ってみました。ユーザーは整数を挿入し、それらの整数で数学演算を実行する加算、減算、乗算、または除算を入力し、ユーザーが完了を入力すると、プログラムは終了します。プログラムは次のとおりです。
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
問題なく動作しますが、変数の初期値が0であるためmultiply
、最初の操作が変数 forを使用して変数を乗算する必要があります (以前のおよび/またはの結果が実行されたため、 の初期値として、常に結果が得られるようになりました。この問題を克服するにはどうすればよいですか?divide
0
result
multiply
divide
1
0
multiply
divide
result
add
subtract
result
0
0