【问题标题】:JAVA how to randomise an operation?JAVA如何随机化一个操作?
【发布时间】:2015-02-20 02:49:16
【问题描述】:

我正在编写一个程序,该程序会针对小学生创建要解决的随机计算。

我想随机化一个操作类型,例如。 +, -, *, / 用于各种难度的问题。目前,我在随机整数上使用 switch 语句以字符串形式返回操作。但是,当我希望执行检查以验证正确的用户输入时:

if((randNumOne randOperation randNumTwo) > (randNumThree randOperationTwo randNumFour))

这显然行不通,但是我不知道如何在语句中实现随机操作来检查用户输入,我该怎么做?

【问题讨论】:

  • 如果randomRandom 类的对象,您可以编写"+-*/".charAt(random.nextInt(4)),但您仍然需要switch 语句来实际评估结果。无论如何最好这样做,因为您可能不希望出现非整数答案的除法问题。

标签: java operation


【解决方案1】:

通常,当您有一个 switch 语句时,这表明您真正需要的是实现特定接口的对象数组。不使用 switch 语句,而是使用随机整数作为数组的索引,并使用对象来获得所需的不同行为。

你可能有一个界面:

string getOperatorName(); // Different instances return "+", "-", "*"...
double evaluateOperator(double operanda, double operandb); // Different instances implement +, -, *

【讨论】:

  • 更好,算子的枚举,带有评估方法。
【解决方案2】:

您是否尝试过创建一个静态函数(无论它适合哪里),它接受两个参数(我假设您在这里只使用二进制运算)并返回给定两个参数的随机(再次,二进制)运算的结果?当然,它必须对除以零进行某种类型的检查(在这种情况下,让异常未处理甚至处理都不好)。

【讨论】:

    猜你喜欢
    • 2012-11-25
    • 2023-03-26
    • 1970-01-01
    • 2011-03-25
    • 2016-03-24
    • 2011-05-14
    • 2011-03-08
    • 1970-01-01
    • 2011-11-16
    相关资源
    最近更新 更多