オブジェクト指向思想で計算機機能を実現(Java版)


/**
 *                 ,        
 */
import java.util.Scanner;
public class TestCalculator {
    public static void main(String[] args) {
        Calculator calculator=new Calculator();
        calculator.start();
    }
}

//      
class Calculator{
    double number1;//   1
    double number2;//   2
    double result;//  
    char sign;//    
    boolean reset=true;//   
    //    
    Calculator(){}
    //     
    void readNumber(){
        Scanner sc1=new Scanner(System.in);
        number1=sc1.nextDouble();
        sign=sc1.next().charAt(0);
        number2=sc1.nextDouble();
    }
    //      
    double calculate(){
        if(sign=='+'){
            result=number1+number2;
        }else if(sign=='-'){
            result=number1-number2;
        }else if(sign=='*'){
            result=number1*number2;
        }else{
            result=number1/number2;
        }
        return result;
    }
    //           
    void showResult(){
        System.out.println(result);
    }
    //    
    void esc(){
        System.out.println("    ?");
        Scanner sc2=new Scanner(System.in);
        String str=sc2.next();
        if(str.equals(" ")){
            reset=true;
        }else if(str.equals(" ")){
            reset=false;
            System.out.println("  ");
        }else{
            System.out.println("    ,     ");
        }
    }
    //    
    void start(){
        while(reset){
            System.out.println("             ");
            readNumber();
            calculate();
            showResult();
            esc();
        }

    }
}