使用随机运算符生成随机数

时间:2017-04-02 02:01:10

标签: android random

我是Android开发的新手,目前正致力于一个简单的应用程序,除其他外,每次都需要使用随机运算符(+, - ,*,/)生成随机数。我有一个“生成”按钮,每次按下它时都会给出不同的问题。我知道如何生成随机数,但我不知道如何生成随机运算符,以便每次都有不同的问题。我尝试使用switch语句但到目前为止还没有成功(或者我在其中缺少代码)。有人可以帮忙吗?提前谢谢。

这是我到目前为止的代码:

private void goGenerate(){

    num1 = (int)(Math.random()*10) + 1;
    num2 = (int)(Math.random()*10) + 1;
    generate();
}

private void generate() {
    StringBuilder equation = new StringBuilder();
    goGenerate();

    operator = (int)(Math.random() *4 ) + 1;

    equation.append(num1);
    if(operator == 1) {
        equation.append("+");
        result = num1 + num2;
    }
    else if(operator == 2) {
        equation.append("-");
        result = num1-num2;
    }
    else if(operator == 3) {
        equation.append("*");
        result = num1 * num2;
    }
    else if(operator == 4) {
        equation.append("/");
        while((num1 % num2 != 0) && (num1 < num2)) {
            generate();
        }
        result = num1 / num2;
    }

    textViewOperation.setText(operator);

1 个答案:

答案 0 :(得分:1)

制作两个随机例程,一个用于您的编号,一个用于限制为0-3,其中您将每个可能的数字(0到3)与操作员相关联。然后它完成了。祝你好运。

编辑(可行):

int operator, num1, num2, result;
StringBuilder equation;

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final TextView tv1 = (TextView) findViewById(R.id.tv1);
    tv1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            generate();
            tv1.setText(String.valueOf(result));
        }
    });

}



private Integer generate() {

    equation = new StringBuilder();
    num1 = (int)(Math.random()*10) + 1;
    num2 = (int)(Math.random()*10) + 1;

    operator = new Random().nextInt(4);

    equation.append(num1);
    if (operator == 1) {
        equation.append("+");
        result = num1 + num2;
    } else if (operator == 2) {
        equation.append("-");
        result = num1 - num2;
    } else if (operator == 3) {
        equation.append("*");
        result = num1 * num2;
    } else if (operator == 4) {
        equation.append("/");
        while ((num1 % num2 != 0) && (num1 < num2)) {
            generate();
        }
        result = num1 / num2;
    }
    return result;
}}