java - 如何在 Java 中创建包含运算符的变量?

标签 java variables operators integer-arithmetic

我正在尝试为我的类(class)编写一个 30 行或更少的程序( self 挑战)。

程序向用户询问一个简单的加法、除法、乘法或减法问题,然后玩家回答、冲洗并重复 10 次,然后询问玩家是否他们想继续或结束该计划。问题类型(addmult 等)应随机选择。

这样我就不需要使用巨大的 switch case 或 if-else 树,我想知道是否有任何方法可以在变量中包含运算符,然后再使用它。

例子:

var operator = +;
int[] n = {1, 2};
System.out.println(n[0] operator n[1]);

输出为“3”

这是我想要做的事情的一个例子。这可能吗?

最佳答案

不,你不能直接这样做。您必须创建一个代表运算符的类型。

最常见的方法是使用枚举:

enum Operator {
  PLUS {
    @Override int operate(int a, int b) {
      return a + b;
    }
  };

  abstract int operate(int a, int b);
}

Operator operator = Operator.PLUS;
int[] n = {1, 2};
System.out.println(operator.operate(n[0], n[1]));

关于java - 如何在 Java 中创建包含运算符的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71786776/

相关文章:

c++ - 对象的内存分配

c - C 中的哪些运算符有错误的优先级?

c - 如果两个函数都返回 boolean 值,使用按位运算符组合它们是否安全?

从另一个子列表匹配设置变量的Pythonic方法

当请求时,PHP 将 mysql 查询作为变量传递给第二个 php 脚本

java - Android Webview 布局无法正确显示

java - Android 应用程序崩溃,这是代码

Haskell:是否还有其他类似 "_"的东西可以用来表示你不关心值是多少?

java - 使用java解析JSON文件中的所有JSONObject

Java 模仿 and, or 的连接规则