Android Java 随机数学除法一直显示“除以零”

问题描述

我正在尝试创建一个应用程序,该应用程序将使用 switch case 生成随机操作数问题。

        MaxDigit = Difficulty.Level;
    Random RandomNumber = new Random();

    //Set the First and Second Number to Random Number
    FNumber = RandomNumber.nextInt(MaxDigit);
    SNumber = RandomNumber.nextInt(MaxDigit);


    Random OperandsChoise = new Random();
    int Operands = OperandsChoise.nextInt(4);

    if ((FNumber / SNumber) >= 1) {
        switch (Operands){

            case 0 :
                this.Answer = this.FNumber + this.SNumber;
                this.QTyoe = FNumber + "+" + SNumber + "=";
                break;

            case 1 :
                this.Answer = this.FNumber - this.SNumber;

                this.QTyoe = FNumber + "-" + SNumber + "=";
                break;

            case 2 :
                this.Answer = this.FNumber * this.SNumber;

                this.QTyoe = FNumber + "*" + SNumber + "=";
                break;

            case 3 :
                this.Answer = (this.FNumber +2) / (this.SNumber +1);

                this.QTyoe = FNumber + "/" + SNumber + "=";
                break;
        }
    }

MaxDigit 正在从另一个名为“难度”的活动中获取整数,让用户决定他们想要挑战的数学问题的难度(Easy-9、Medium-99、Hard-999)。但不知何故,SNumber 不断变为 0 并且兑现崩溃。

有什么办法可以把SNumber设置在这个范围内,让Answer不小于1吗?

解决方法

我从您的代码中看到 FNumberSNumber 始终为正数。您可以限制第二个数字永远不会小于 0,例如:

SNumber = RandomNumber.nextInt(MaxDigit - 1) + 1;

上面的代码段将确保 SNumber 永远不会大于 MaxDigit,而始终大于或等于 1。