最简单的编程语言

1.3k 词

题目描述

为了提高工作效率,巨硬公司决定开发一种新型的编程语言。由于是从零开始开发,难度可想而知。不过,即使是当今世界上最强大的编程语言,也不是刚被发明出来就马上拥有强大功能的,它们都是通过慢慢的改进从而逐渐强大起来的。因此公司决定先将该编程语言的最基本部分做出来,以后再渐渐扩充其它功能。该编程语言最基本的部分是计算。作为公司的首席程序设计师,你的任务就是完成该功能。 

输入

输入由两部分组成:变量定义部分和表达式计算部分。在变量定义部分中,每一行只能定义一个变量,并且一定要赋上一个初值。计算部分则是每一行有一个表达式,表达式由变量和操作符组成,符号和变量之间用一个空格分隔,且符号只能取+、-、*、/这四种,变量定义部分和表达式计算机部分之间用%%%进行分隔,下面是一个例子:
a = 4
b = 2
%%%
a + b
a - b

输出

表达式的结果,每行输入一个结果

样例输入

1
2
3
4
5
6
7
a = 4
b = 2
c = 1
%%%
a + b + c
a - b - c
a - a

样例输出

1
2
3
7
1
0

题解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.util.HashMap;
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
HashMap<String, Integer> hashMap = new HashMap<>();
while (scanner.hasNext()) {
String s = scanner.nextLine();
if (s.equals("%%%")) break;
String[] ss = s.split(" ");
int put = Integer.parseInt(ss[2]);
hashMap.put(ss[0], put);
}
while (scanner.hasNext()) {
String s1 = scanner.nextLine();
String[] ss1 = s1.split(" ");
int sum = hashMap.get(ss1[0]);

for (int i = 1; i < ss1.length; i += 2) {
if (ss1[i].equals("+")) {
sum += hashMap.get(ss1[i + 1]);
} else if (ss1[i].equals("-")) {
sum -= hashMap.get(ss1[i + 1]);
} else if (ss1[i].equals("*")) {
sum *= hashMap.get(ss1[i + 1]);
}
}
System.out.println(sum);
}
}
}