android java随机数学除法一直显示“除以零”

rsl1atfo  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(415)

我正在尝试创建一个应用程序,通过使用开关盒生成随机操作数问题。

  1. MaxDigit = Difficulty.Level;
  2. Random RandomNumber = new Random();
  3. //Set the First and Second Number to Random Number
  4. FNumber = RandomNumber.nextInt(MaxDigit);
  5. SNumber = RandomNumber.nextInt(MaxDigit);
  6. Random OperandsChoise = new Random();
  7. int Operands = OperandsChoise.nextInt(4);
  8. if ((FNumber / SNumber) >= 1) {
  9. switch (Operands){
  10. case 0 :
  11. this.Answer = this.FNumber + this.SNumber;
  12. this.QTyoe = FNumber + "+" + SNumber + "=";
  13. break;
  14. case 1 :
  15. this.Answer = this.FNumber - this.SNumber;
  16. this.QTyoe = FNumber + "-" + SNumber + "=";
  17. break;
  18. case 2 :
  19. this.Answer = this.FNumber * this.SNumber;
  20. this.QTyoe = FNumber + "*" + SNumber + "=";
  21. break;
  22. case 3 :
  23. this.Answer = (this.FNumber +2) / (this.SNumber +1);
  24. this.QTyoe = FNumber + "/" + SNumber + "=";
  25. break;
  26. }
  27. }

maxdigit从另一个名为“难度”的活动中获取整数,让用户决定他们想挑战的数学问题的难度(easy-9、medium-99、hard-999)。但不知何故,盗贼一直得到0,并兑现崩溃。
有没有办法将snumber设置在范围内,并使答案不小于1?

vfh0ocws

vfh0ocws1#

我从你的代码中看到 FNumberSNumber 永远都是积极的。可以将第二个数字钳制为永远不小于0,例如:

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

上面的代码片段将确保 SNumber 永远不会超过 MaxDigit 但始终大于或等于1。

相关问题