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]);
        }
    }
}

注意:

  1. 每行输入包含一个非负整数,一个空格,一个运算符,一个空格,以及另一个非负整数。输出是一个整数(向下取整)。
  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]);
        }
    }
}

修改后的代码已删除条件语句末尾的分号,这样程序将按照预期输出结果。

希望这个修改能解决你的问题!如果还有其他问题,请随时提问。

Java程序:计算两个操作数的数学表达式

原文地址: https://www.cveoy.top/t/topic/bKkI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录