标签:print error 优先 == 一个 scan void amp new
模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。
输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。
在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。
1+2*10-10/2=
10
代码:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = 0, b = 0; boolean flag = true; char ch = 0; String s; s = sc.nextLine(); for(int i = 0;i < s.length();i ++) { if(s.charAt(i) >= ‘0‘ && s.charAt(i) <= ‘9‘) { b = s.charAt(i) - ‘0‘; while(s.charAt(i+1) >= ‘0‘ && s.charAt(i+1) <= ‘9‘) { i++; b *= 10; b += s.charAt(i) - ‘0‘; } if(ch == 0)a = b; else { if(ch == ‘+‘)a += b; else if(ch == ‘-‘)a -= b; else if(ch == ‘*‘)a *= b; else if(ch == ‘/‘) { if(b == 0){flag = false; break;} else a /= b; } else {flag = false;break;} } } else { if(s.charAt(i) == ‘=‘)break; ch = s.charAt(i); } } if(flag)System.out.print(a); else System.out.print("ERROR"); } }
习题2.1 简单计算器(20 分)浙大版《数据结构(第2版)》题目集
标签:print error 优先 == 一个 scan void amp new
原文地址:http://www.cnblogs.com/8023spz/p/7635608.html