Java程序:计算两个操作数的数学表达式
Java程序:计算两个操作数的数学表达式
本程序使用Java语言编写,用于计算包含两个非负整数操作数和一个运算符(+, -, * 或 /)的数学表达式。程序将输入的表达式字符串拆分成操作数和运算符,并执行相应的计算,最终输出计算结果。
示例:
输入:
7
3 + 2
4 * 4
3 - 5
155 / 5
157 / 5
158 / 5
0 + 7
输出:
5
16
-2
31
31
31
7
代码:
import java.util.*;
public class TestMathExpr {
static Scanner input = new Scanner(System.in);
// 这里是要实现的函数
public static void parse_line(String s1, String s2, String s3) {
int a = Integer.parseInt(s1);
int b = Integer.parseInt(s3);
if (s2.equals(" + ")) {
System.out.println(a + b);
}
if (s2.equals(" - ")) {
System.out.println(a - b);
}
if (s2.equals(" * ")) {
System.out.println(a * b);
}
if (s2.equals(" / ")) {
System.out.println(a / b);
}
}
public static void main(String[] args) throws Exception {
int line_number = Integer.parseInt(input.nextLine());
for (int i = 0; i < line_number; i++) {
String s = input.nextLine();
String t[] = s.split(" ");
TestMathExpr.parse_line(t[0], t[1], t[2]);
}
}
}
注意:
- 每行输入包含一个非负整数,一个空格,一个运算符,一个空格,以及另一个非负整数。输出是一个整数(向下取整)。
- 每个测试用例的第一行将是一个整数N(在上面的示例中,N等于7)。这个整数N代表接下来要输入的数据的行数。这部分代码已经在模板中给出,请参考下面的程序模板部分。
程序模板:
import java.util.*;
public class TestMathExpr {
static Scanner input = new Scanner(System.in);
// 这里是要实现的函数
public static void parse_line(String s1, String s2, String s3) {
// 在这里实现代码
}
public static void main(String[] args) throws Exception {
int line_number = Integer.parseInt(input.nextLine());
for (int i = 0; i < line_number; i++) {
String s = input.nextLine();
String t[] = s.split(" ");
TestMathExpr.parse_line(t[0], t[1], t[2]);
}
}
}
代码问题:
你的代码中存在一个错误。在每个条件语句(if语句)的末尾,你多了一个分号。在Java中,分号表示语句的结束,如果在条件语句的末尾添加分号,会导致其后面的代码块无条件执行。因此,你需要删除每个条件语句末尾的分号。
修改后的代码:
import java.util.*;
public class TestMathExpr {
static Scanner input = new Scanner(System.in);
// 这里是要实现的函数
public static void parse_line(String s1, String s2, String s3) {
int a = Integer.parseInt(s1);
int b = Integer.parseInt(s3);
if (s2.equals(" + ")) {
System.out.println(a + b);
}
if (s2.equals(" - ")) {
System.out.println(a - b);
}
if (s2.equals(" * ")) {
System.out.println(a * b);
}
if (s2.equals(" / ")) {
System.out.println(a / b);
}
}
public static void main(String[] args) throws Exception {
int line_number = Integer.parseInt(input.nextLine());
for (int i = 0; i < line_number; i++) {
String s = input.nextLine();
String t[] = s.split(" ");
TestMathExpr.parse_line(t[0], t[1], t[2]);
}
}
}
修改后的代码已删除条件语句末尾的分号,这样程序将按照预期输出结果。
希望这个修改能解决你的问题!如果还有其他问题,请随时提问。
原文地址: https://www.cveoy.top/t/topic/bKkI 著作权归作者所有。请勿转载和采集!