Java 如何从带有循环的数组中声明随机值?

Java 如何从带有循环的数组中声明随机值?,java,arrays,loops,Java,Arrays,Loops,我有一个通过循环输出随机动物的程序。我的目标是让循环随机输出一只动物。我也尝试过在循环外部声明数组[0]-array[4],但仍然不起作用 我做错了什么 String[] array= new String[4]; //output random animals for (int i = 0; i < array.length; i++) { array[0] = "Dogs!" array[1] = "R

我有一个通过循环输出随机动物的程序。我的目标是让循环随机输出一只动物。我也尝试过在循环外部声明数组[0]-array[4],但仍然不起作用

我做错了什么

String[] array= new String[4]; 

        //output random animals
        for (int i = 0; i < array.length; i++) {
            array[0] = "Dogs!"
            array[1] = "Rabbits!"
            array[2] = "Cats!";
            array[3] = "Fish!";
            array[4] = "Horse!";
            itsATextArea.setText(array[i] + "\n");  //output
        }

以下是固定代码:

String[] array= new String[5];
array[0] = "Dogs!";
array[1] = "Rabbits!";
array[2] = "Cats!";
array[3] = "Fish!";
array[4] = "Horse!";

//output random animals
itsATextArea.setText(array[(int) (Math.random() * array.length)]);  //output
  • 数组中有5个元素,而不是4个
  • 您应该在循环之外填充数组,否则每次循环迭代时都会填充数组,这是无用的。你只想填一次
  • 代码中没有任何与随机性有关的内容。我在最后一行添加了随机性
    Math.random()
    返回从
    0
    1
    的随机数,因此将其乘以长度将返回从
    0
    length-1
    的数字。然后我将其转换为
    int
    ,因此它不是十进制值
  • 此外,还有一种更简单的初始化阵列的方法:

    String[] array = {"Dogs!", "Rabbits!", "Cats!", "Fish!", "Horse!"};
    

    您的代码中没有任何随机性。看看如何使用。网站上有大量的例子

    array[0] = "Dogs!"
    array[1] = "Rabbits!"
    array[2] = "Cats!";
    array[3] = "Fish!";
    array[4] = "Horse!";
    
    itsATextArea.setText((int)array[Math.floor(Math.random() * 5)]);
    

    不需要for循环。

    您可以这样做:

    import java.util.Random;
    Random randomGenerator = new Random();
    int randomInt = randomGenerator.nextInt(array.length);
    
    System.out.println("my animal is" + array[randomInt]);
    

    我把它改成了5,仍然会弹出与问题中完全相同的错误,唯一的区别是“4”现在是“5”@user2407152你把什么改成了5?数组的长度?@user2407152和其他所有东西都一样吗?尝试将我的答案中的代码复制/粘贴到您的程序中。我已复制并粘贴了所有内容,您希望我编辑问题以向您显示我所做的更改吗?(虽然完全相同,所以没什么奇怪的…@user2407152您在哪一行收到错误?这对我来说很有效,你试着把5只动物放在一个大小为4的数组中…@iamnotmaynard哦,妈的,我以为这是一个JavaScript问题。
    import java.util.Random;
    Random randomGenerator = new Random();
    int randomInt = randomGenerator.nextInt(array.length);
    
    System.out.println("my animal is" + array[randomInt]);