为了账号安全,请及时绑定邮箱和手机立即绑定

选择随机数组元素

选择随机数组元素

慕的地10843 2021-08-25 10:34:55
我试图从这个数组中获取一个随机值。当我运行程序时,它只为 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 值。


查看完整回答
反对 回复 2021-08-25
?
小唯快跑啊

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));


查看完整回答
反对 回复 2021-08-25
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

Java 是原始类型的“按值传递”。这意味着当您将数字作为参数传递给另一个方法时,不会在该方法内修改原始值。您希望x变量变为h变量,但这是两个不同的变量,更新h不会更新“x”。


查看完整回答
反对 回复 2021-08-25
  • 3 回答
  • 0 关注
  • 121 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信