java - 我怎样才能缩短这段代码并减少重复?

标签 java

我做了一个简单的计算器,但 if 语句非常重复且很长。我想知道我可以使用什么其他解决方案来缩短它并减少重复。例如,使用一种方法(我已经尝试过但没有成功)或任何其他可用的技术。最好不要太高级,因为我是初学者。

import static java.lang.System.*;
import static javax.swing.JOptionPane.*;
import static java.lang.Integer.*;

public class SimpleCalc {

    public static void main(String[] args) {

        String operator = showInputDialog("Choose operation: " + "\n" +
                "[1] = Plus" + "\n" +
                "[2] = Minus" + "\n" +
                "[3] = Multiply" + "\n" +
                "[4] = Divide" + "\n");

        int c = parseInt(operator);

        if (c > 4) {
            showMessageDialog(null, "You cant do that.");

        } else if (c == 1) {
            String textA = showInputDialog("Enter first number: ");
            String textB = showInputDialog("Enter second number: ");
            int a = parseInt(textA);
            int b = parseInt(textB);
            showMessageDialog(null, a + " + " + b + " = " + (a + b));

        } else if (c == 2) {
            String textA = showInputDialog("Enter first number: ");
            String textB = showInputDialog("Enter second number: ");
            int a = parseInt(textA);
            int b = parseInt(textB);
            showMessageDialog(null, a + " - " + b + " = " + (a - b));

        } else if (c == 3) {
            String textA = showInputDialog("Enter first number: ");
            String textB = showInputDialog("Enter second number: ");
            int a = parseInt(textA);
            int b = parseInt(textB);
            showMessageDialog(null, a + " * " + b + " = " + (a * b));

        } else if (c == 4) {
            String textA = showInputDialog("Enter first number: ");
            String textB = showInputDialog("Enter second number: ");
            int a = parseInt(textA);
            int b = parseInt(textB);
            showMessageDialog(null, a + " / " + b + " = " + (a / b));
        }
    }
}

最佳答案

尝试类似的事情

        String textA = showInputDialog("Enter first number: ");
        String textB = showInputDialog("Enter second number: ");
        int a = parseInt(textA);
        int b = parseInt(textB);
        switch(c) {
        case 1:
            showMessageDialog(null, a + " + " + b + " = " + (a+b));
            break;

        case 2:
        ...
        default:
            showMessageDialog(null, "You cant do that.");

关于java - 我怎样才能缩短这段代码并减少重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50183706/

相关文章:

java - "Unresolved compilation pro..."异常错误

java - 在 spring webflux 中使用 uri() 时如何保留 baseUrl

java - 我的java代码需要一点帮助

java - 线程无缘无故卡在 BlockingQueue.take

java - 获取 Eclipse 启动的进程的 PID

java - 使用 Intellij 使用键盘或鼠标选择括号 () 或方括号 [] 或大括号 {} 之间的 block

java - 如何使用泛型将一个 RecyclerView 适配器用于不同类型的对象?

java - 在 JDK 7u2 上重写接口(interface)方法时出现 @override 编译器错误

java - SDK 管理器和 AVD 管理器未运行

Java 默认值困惑,为什么函数作用域变量没有?