【发布时间】:2021-09-19 01:18:08
【问题描述】:
我正在尝试创建一个应用程序,该应用程序将使用 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?
【问题讨论】:
-
那么
MaxDigit的值是多少?如果您想要一个不包括 1 的随机数,您可以将 1 添加到生成的数字中。我还建议注意 Java 命名约定,变量应该在camelCase中,通常只有类名应该在PascalCase中。 -
Random.nextInt(N)return number from interval[0, N)... 要从间隔[1, N)返回,您需要从[0, N-1)中选择并添加1... information about braces -
@HenryTwist
MaxDigit的值将根据用户难度级别选择(9、99、999)而变化。从另一个 Activity 导入 -
@Selvin 但我需要在其他活动中导入 Maxdigit,让用户选择难度级别。我尝试过使用 (MaxDigit, MaxDigit+1) 和 (0, MaxDigit+1) 之类的方法,但这些方法都不起作用。
标签: java android math random divide-by-zero