首页 > 编程语言 > 详细

Java流程控制与方法——计算器升级(使用eval方法)

时间:2020-05-26 22:44:58      阅读:35      评论:0      收藏:0      [点我收藏+]

Java 流程控制及方法实践

1.计算器

package JavaMethod;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import java.util.Scanner;

public class CalculatorEvo {
    public static void main(String[] args) throws ScriptException {
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine se = manager.getEngineByName("js");
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入计算式");
        while (scanner.hasNext()){
            String sc = scanner.nextLine();
            if (sc.equals("exit")){
                break;
            }
            
            //强制转换为Double时,当结果为整数类型则报错
            Number result = (Number)se.eval(sc);  
            System.out.println("结果是"+result);
            System.out.println("请输入计算式,或输入exit退出");
        }
        System.out.println("感谢您的使用");
        scanner.close();
    }
}

? Java内部并没有eval函数,但是存在Javax包中的script接口可以调用类似于eval的方法,进而实现将字符串转义成对应函数表达式。相比于定义四种方法(加减乘除),代码更见简洁,实现功能更为全面。

? 具体原理尚未学习(抛出异常throws ScriptException等),代码如上所示,注释待后续补充。

Java流程控制与方法——计算器升级(使用eval方法)

原文:https://www.cnblogs.com/wdgjm/p/12968627.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!