我试图从这个数组中获取一个随机值。当我运行程序时,它只为 x 打印 0。为什么不打印从函数返回的更新值?import java.util.*;public class randomArray{ public static void main(String[] args) { int[] myArray = new int[]{1,2,3}; int x = 0; getRandom(myArray, x); System.out.println(x); } public static int getRandom(int[] array, int h) { int rnd = new Random().nextInt(array.length); return h; }}
3 回答
慕森王
TA贡献1777条经验 获得超3个赞
Java 按值传递参数,而不是按引用传递,因此x值不会在 getRandom 方法内更新。因此,当您调用 getRandom 时,会创建h变量并获取参数 x 值的副本,即 0 值。然后您将返回具有 0 值的 h 值。
小唯快跑啊
TA贡献1863条经验 获得超2个赞
您需要将您getRandom()的更改为以下内容
public static int getRandom(int[] array)
{
int rnd = new Random().nextInt(array.length); //generate random index
return array[rnd]; // get element by random index
}
然后打电话 System.out.println(getRandom(myArray));
qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
Java 是原始类型的“按值传递”。这意味着当您将数字作为参数传递给另一个方法时,不会在该方法内修改原始值。您希望x
变量变为h
变量,但这是两个不同的变量,更新h
不会更新“x”。
添加回答
举报
0/150
提交
取消