0

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を使用して変数を乗算する必要があります (以前のおよび/またはの結果が実行されたため、 の初期値として、常に結果が得られるようになりました。この問題を克服するにはどうすればよいですか?divide0resultmultiplydivide10multiplydivideresultaddsubtractresult00

4

1 に答える 1