栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2021-10-26

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-10-26

计算后缀表达式(自我学习总结)

主要思路:后缀表达式在计算机的运行下是十分简单的
只要正常的进行符号读取即可

1.写一个方法
2.在方法中定义域
一个boolean型判断是否是数字
创立一个栈s
一个token变量用来储存输入的数
还有几个必要的变量和结果

Scanner方法获取输入
用token获取输入的值

然后进行判,我们可以知道最终是“=”结束的,所以我们用等号来判断。挤到最后,看栈的初始元素是否为等号。

用try catch语句防止输入的值不是数字而使程序崩溃。如果isNumber是true,先将其放在结果中。else接着就是各种符号了。用switch语句来实现比较好。(其中应该注意的是幂次方^)
最后return出返回值即可`import java.util.Scanner;
import java.util.Stack;

public class 实验5 {

public static void main(String[] args) {
	// TODO Auto-generated method stub

}
static double evalPostfix() {
	Stacks = new Stack();
	String token;
	boolean isNumber;
	double a,b,result = 0;
	
	
	Scanner sc = new Scanner(System.in);
	token = sc.next();
	while(token.charAt(0)!='=') {
		try {
			isNumber = true;
			result = Double.parseDouble(token);
		}
		catch(Exception e) {
			isNumber = false;
		}
		if(isNumber = true) {
			s.push(result);
		}
		else {
			switch(token.charAt(0)) {
			case'+':
			a = s.pop();
			b = s.pop();
			s.push(a+b);
			break;
			case'-':
				a = s.pop();
				b = s.pop();
				s.push(a-b);
				break;
			case'*':
				a = s.pop();
				b = s.pop();
				s.push(a*b);
				break;
			case'/':
				a = s.pop();
				b = s.pop();
				s.push(a/b);
				break;
			case'^':
				a = s.pop();
				b = s.pop();
				s.push(Math.pow(a, b));
				break;
			}
		}token = sc.next();
	}return s.peek();
	
	
}

}`

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/351820.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号