选择随机数组元素

我试图从这个数组中获取一个随机值。当我运行程序时,它只为 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;   

    }

}


慕的地10843
浏览 122回答 3
3回答

慕森王

Java 按值传递参数,而不是按引用传递,因此x值不会在 getRandom 方法内更新。因此,当您调用 getRandom 时,会创建h变量并获取参数 x 值的副本,即 0 值。然后您将返回具有 0 值的 h 值。

小唯快跑啊

您需要将您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

Java 是原始类型的“按值传递”。这意味着当您将数字作为参数传递给另一个方法时,不会在该方法内修改原始值。您希望x变量变为h变量,但这是两个不同的变量,更新h不会更新“x”。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java