Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在可变范围内生成两个随机数的方法_Java_Random - Fatal编程技术网

Java 在可变范围内生成两个随机数的方法

Java 在可变范围内生成两个随机数的方法,java,random,Java,Random,对于我的作业,我需要创建一个随机数学生成器的方法,您可以在其中练习加法、减法、乘法和除法 我需要创建一个方法,根据您正在执行的操作,该方法的范围有所不同。。比如说 1。添加问题 两个操作数都应该是1到500(含)范围内的随机数 2。减法题 两个操作数都应该是1到999(含)范围内的随机数 但第二个操作数(从顶部数中减去的数)应小于或等于第一个操作数 3。乘法问题 第一个操作数(顶数)必须在1到100之间(包括1到100) 第二个操作数(底部数字)必须在1到9之间(包括1到9) 4。部

对于我的作业,我需要创建一个随机数学生成器的方法,您可以在其中练习加法、减法、乘法和除法

我需要创建一个方法,根据您正在执行的操作,该方法的范围有所不同。。比如说

1。添加问题

  • 两个操作数都应该是1到500(含)范围内的随机数
2。减法题

  • 两个操作数都应该是1到999(含)范围内的随机数
  • 但第二个操作数(从顶部数中减去的数)应小于或等于第一个操作数
3。乘法问题

  • 第一个操作数(顶数)必须在1到100之间(包括1到100)
  • 第二个操作数(底部数字)必须在1到9之间(包括1到9)
4。部门问题

  • 除数(操作数2)的范围必须介于1和9之间(包括1和9)
  • 被除数(操作数1)必须具有一个值,使得所得的商始终在1到50(包括1到50)的范围内
然后,我会做一个if-else语句,类似于:

 correctAnswer = firstRandomNumber + secondRandomNumber
 if (userInput = correctAnswer) 
    { 
      system.out.println ("Correct!");
     } else {
        system.out.println ("Wrong!");
    }

我该怎么做呢?

这应该是一个很好的开始:

import java.util.concurrent.ThreadLocalRandom;

public class RandomNumberRange {

    private int random(int min, int max) {
        int number = ThreadLocalRandom.current().nextInt((max - min) + 1) + min;
        return number;
    }

    public int[] numberforOperation(String operation) {
        if (operation.equals("addition")) {
            int min = 1;
            int max = 500;
            int[] operands = {random(min, max), random(min, max)};
            return operands;
        }
        if (operation.equals("subtraction") {
            int min = 1;
            int max =999;
            int minuend = random(min, max);
            int subtrahend = random(min, minuend);
        }

        /**** etc. *** etc.***/

        else (return null);
    }    
}

if(operation==“addition”)
不是比较字符串的正确方法-使用
if(Objects.equals(operation,“addition”)
if(operation.equals(“addition”))
如果
操作
不能为
。很遗憾,我们不允许使用数组,因为在分配任务时没有涉及数组。Erwin-关于使用equals方法非常正确。谢谢-我编辑了。关于null,它将在客户端类上推送“操作”的验证。我不想用验证代码模糊代码,也不想做我通常会做的事情,即使用enum.malsafoo-您有其他选择。我选择了一个数组,因为它是一个快速脏的数组,只是想在不复杂的情况下展示这个概念。可以创建一个类来保存操作数。如果你被允许这样做,那就更优雅了。更糟糕的情况是,创建两种方法。一个用于操作数1,一个用于操作数2。这很难看也很麻烦,但它会起作用的。对不起,我忘了最明显的工作。只需将这两个方法与其他代码放在同一个类中,并为操作数1和操作数2创建类(而不是方法)变量。这不是一个好的做法,但它很简单,而且很有效。