java计算加减乘除_用Java实现的表达式求值算法(包括加、减、乘、除、括号运算),加减乘除,以及,转...

一、表达式求值简单说明:

1、求值表达式主要包括加减乘除四种基本运算,其实表达式可以看做由一个个二元运算构成,前一个二元运算的结果作为后一个二元运算的输入。

举个例子: “1+2-4=”,“1+2”就是一个二元运算,1和2是操作数,+是运算符,它们的运算结果3作为下一个二元运算的输入,所以下一个二元运算是“3-4”,这样经过两次二元运算后得出结果-1,此时碰到表达式结束符号“=”,那么表达式运算结束,最终值为-1。当然有时候表达式不是以等号作为结束符号的,这种场景要特别注意下。

2、加减乘除四种运算符是有优先级的,乘法和除法同级,且比加法和减法优先级高,也就是说同级的运算顺序是从左到右,高优先级的二元运算优先执行。

举个例子:“1+2

3=”,“2

3”这个二元运算因为乘法的优先级高,所以优先执行,执行结果作为+二元运算的第二个操作数。

3、括号运算其实相当于嵌套一个子表达式,而子表达式的优先级比括号外的加减乘数二元运算高,子表达式的计算结果作为主表达式的一个操作数。

4、由上面的说明可知,表达式有两个基本元素,那就是操作数和运算符,运算符一般占用一个字符,而操作数可能是1, 2, 3这样的个位整数,也可能是1.0, 1.89这样的浮点数,也可能是100, 189这样的多位整数。所以我们在从表达式解析出操作数时要完整的解析出整个操作数。

5、表达式一般以等号作为表达式结束标记,当然有不以等号作为结束标记的场景,详情看下面代码处理逻辑。

作者:瞬身疾风

来源:CSDN

原文:https://blog.csdn.net/moon_1991/article/details/80947858

版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 非常感谢您的提问。关于您的问题,我可以回答。用 Java 编写程序模拟计算器,可以使用基本的算术运算实现加减乘除,使用 Math 类中的 pow 方法实现乘幂运算,使用 % 运算实现取余运算。具体实现方式可以参考 Java 编程语言的相关教程和文档。希望我的回答能够帮助到您。 ### 回答2: 用Java编写程序模拟计算器非常简单。首先,我们需要定义一个Calculator类,其中包含实现加减乘除以及乘幂和取余等基本运算的方法。 ```java public class Calculator { public static double add(double num1, double num2) { return num1 + num2; } public static double subtract(double num1, double num2) { return num1 - num2; } public static double multiply(double num1, double num2) { return num1 * num2; } public static double divide(double num1, double num2) { if (num2 != 0) { return num1 / num2; } else { throw new IllegalArgumentException("除数不能为0!"); } } public static double power(double base, double exponent) { return Math.pow(base, exponent); } public static double modulus(double num1, double num2) { return num1 % num2; } public static void main(String[] args) { double num1 = 10; double num2 = 5; System.out.println("法结果:" + add(num1, num2)); System.out.println("法结果:" + subtract(num1, num2)); System.out.println("乘法结果:" + multiply(num1, num2)); System.out.println("除法结果:" + divide(num1, num2)); System.out.println("乘幂结果:" + power(num1, num2)); System.out.println("取余结果:" + modulus(num1, num2)); } } ``` 在上面的程序中,我们定义了add、subtract、multiply、divide、power和modulus等方法来实现加减乘除以及乘幂和取余等基本运算。在main方法中,我们使用示例数字进行测试,并打印出各种运算的结果。 运行程序后,我们将得到以下输出: ``` 法结果:15.0 法结果:5.0 乘法结果:50.0 除法结果:2.0 乘幂结果:100000.0 取余结果:0.0 ``` 这证明我们成功地用Java编写程序模拟了计算器,实现加减乘除以及乘幂和取余等基本运算。 ### 回答3: 用Java编写程序模拟计算器,实现加减乘除以及乘幂和取余等基本运算是非常简单的。下面是一个简单的示例代码: ```java import java.util.Scanner; public class Calculator { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入两个操作数:"); double num1 = scanner.nextDouble(); double num2 = scanner.nextDouble(); System.out.println("请输入运算符(+、-、*、/、^、%之一):"); String operator = scanner.next(); double result = 0; switch(operator) { case "+": result = num1 + num2; break; case "-": result = num1 - num2; break; case "*": result = num1 * num2; break; case "/": if(num2 != 0) { result = num1 / num2; } else { System.out.println("除数不能为0"); return; } break; case "^": result = Math.pow(num1, num2); break; case "%": result = num1 % num2; break; default: System.out.println("无效的运算符"); return; } System.out.println("运算结果:" + result); } } ``` 以上程序首先通过`Scanner`类获取两个操作数和运算符。然后使用`switch`语句根据运算符执行相应的操作,并将结果保存到`result`变量中。最后将结果输出到控制台上。 注意,以上程序只实现了最基本的运算符,没有考虑到括号、优先级等复杂的情况。如果需要实现更复杂的计算器功能,可以考虑使用逆波兰表达式等相关算法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值