簡體   English   中英

在Java上創建基本計算器?

[英]Creating a basic calculator on Java?

如何輸入一個完整的方程式,例如1 +2。因為到目前為止,我只能要求用戶一次輸入一個數字,所以我想知道如何讓用戶輸入整個方程式?

import java.util.Scanner;
public class TryCalculator {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        System.out.println("Addition");
        System.out.println("Subtraction");
        System.out.println("Division");
        System.out.println("Multiplication");
        System.out.println("Natural Log");
        System.out.println("Exponent");
        System.out.println("**********************************");

       Scanner scan = new Scanner(System.in);
       Scanner keyboard = new Scanner(System.in);

       double value1;
       double value2;
       String op;

       System.out.println("enter a digit");
       value1 = scan.nextDouble();
       System.out.println("enter operation ");
       op = keyboard.next();
       System.out.println("enter second digit");
       value2 = scan.nextDouble();

        if(op.equals("+")){
            System.out.println(value1 + value2);

        }if(op.equals("-")){
            System.out.println(value1 - value2);

        }if(op.equals("/")){
            System.out.println(value1 / value2);

        }if(op.equals("*")){
            System.out.println(value1 * value2);

        }if(op.equals("^")){
            System.out.println(Math.pow(value1, value2));

        }if (op.equals("log")){
            System.out.println(Math.log(value1));

        }else{

        }  
    }   
}

如果您不想使用javascript或諸如此類的一些求值器( link1link2 ),則可以使用簡單的表達式(如1 + 2

Scanner keyboard = new Scanner(System.in);
String exp = keyboard.next();
    String []all = exp.split(" ", -1);
/*
then
all[0] = first operation;
all[1] = operator;
all[0] = second operator
*/

//and you can do like this
void calculate(String []all) {

    Double value1 = Double.parseDouble(all[0]);
    Double value2 = Double.parseDouble(all[2]);
    String op = all[1];

     if(op.equals("+")){
            System.out.println(value1 + value2);

    }if(op.equals("-")){
        System.out.println(value1 - value2);

    }if(op.equals("/")){
        System.out.println(value1 / value2);

    }if(op.equals("*")){
        System.out.println(value1 * value2);

    }if(op.equals("^")){
        System.out.println(Math.pow(value1, value2));

    }if (op.equals("log")){
        System.out.println(Math.log(value1));

    }else{

    }  
}

這未經測試,但是可以作為一個很好的起點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM