You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

生成乘法表时Random()返回0,但数组无0值,求技术原因

问题解答:乘法表代码输出0的原因

嘿,我来帮你理清这个问题!你遇到的0其实是数组的索引值,不是你数组里的元素,具体原因看下面:

问题根源

你代码里的new Random().nextInt(anArrayOne.length)方法,返回的是数组的索引,而不是数组中的元素。Java数组的索引是从0开始计数的,你的数组长度是10,所以nextInt(10)会生成0到9之间的随机整数——这就是输出里出现0的原因!你直接把这个索引值当成要相乘的数字打印了,自然会出现不在数组里的0。

修正后的代码

你需要先获取随机索引,再用索引去数组中取出对应的1-10的元素,代码修改如下:

int[] anArrayOne = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int[] anArrayTwo = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// 建议只创建一个Random实例,比多次new更高效合理
Random random = new Random();
int firstIndex = random.nextInt(anArrayOne.length);
int secondIndex = random.nextInt(anArrayTwo.length);
// 通过索引获取数组里的目标数字
int firstNumber = anArrayOne[firstIndex];
int secondNumber = anArrayTwo[secondIndex];
System.out.println("What is " + firstNumber + " times " + secondNumber + "? ");

额外小建议

尽量不要每次调用nextInt都新建一个Random对象,复用同一个实例可以让生成的随机数分布更均匀,同时也更节省资源。

内容的提问来源于stack exchange,提问作者Rocek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:10:37