Java调用其他类随机数方法后主类打印值为0如何解决
问题原因
- 调用
otherClass的assignNumber()方法时未接收返回值,主类Example中的静态成员变量number始终未被赋值,int类型类成员的默认初始值为0,因此输出结果固定为0。 - 现有随机数生成逻辑
num.nextInt(4) + 1的输出范围是14,不符合13的预期:nextInt(n)会生成取值范围为**[0, n)**的整数,nextInt(4)生成03的整数,加1后取值范围为14。
修复后代码
主类Example
package example; public class Example { public static int number; public static void main(String[] args) { otherClass a = new otherClass(); // 接收assignNumber方法返回的随机数,赋值给静态变量number number = a.assignNumber(); System.out.println(number); } }
单独类otherClass
package example; import java.util.Random; public class otherClass { public int assignNumber(){ Random num = new Random(); // nextInt(3)生成0~2的整数,加1后取值范围为1~3,符合预期 int number = num.nextInt(3) + 1; return number; } }
内容的提问来源于stack exchange,提问作者Kristie
相关产品推荐
相关产品推荐

