java - 为什么我的java程序每次都打印零?

标签 java arrays for-loop

我需要获取一个大小为 x 的数组(其中包含从 x 开始然后递减到 1 的数字),然后使用一个大小为 y 的新数组(可能与 x 大小相同,也可能不同) ),将数组 x 中的随机数打印到数组 y 中。我编写了该程序,它运行良好,但由于某种原因,在输出的随机数列表中,数字 0 将显示。有谁知道为什么会发生这种情况?这是我的代码:

import java.util.Random;
public class Prog1A 
{
    public static void main(String[] args)
    {
        System.out.println("Program 1A, Christopher Moussa, masc1574");
        Random randGen = new Random();
        int[] arr_1 = new int[8];
        for (int i = arr_1.length - 1; i >= 0; i--)
        {
            arr_1[i] = arr_1[i];
        }
        int[] arr_2 = new int[6];
        for (int i = 1; i <= arr_2.length; i++)
        {
            System.out.print(randGen.nextInt(arr_1.length) + " ");
        }
    }
}

如有任何反馈,我们将不胜感激,谢谢。

最佳答案

好吧,你没有对这个循环做任何事情。您实际上是在整个数组中将一个变量分配给它自己。另外,我不喜欢您编写循环条件的方式,但我的偏好不是这里的问题。

for (int i = arr_1.length - 1; i >= 0; i--)
    {
        arr_1[i] = arr_1[i]; //This code does nothing
    }

然后您创建了arr_2[],但您从未向变量分配任何内容。 我继续编辑了您的代码,然后我将解释一些事情。

import java.util.Random;
public class Prog1A 
{
    public static void main(String[] args)
    {
        Random randGen = new Random();
        int[] arr_1 = new int[8];
        int[] arr_2 =  new int[6];

        System.out.println("Program 1A, Christopher Moussa, masc1574");

        //Assigns a random number to each member of arr_1
        for (int i = 0; i < arr_1.length; ++i)
        {
            arr_1[i] = randGen.nextInt(arr_1.length);
        }

        //Copies arr_1 values to arr_2
        for (int i = 0; i < arr_2.length; ++i) //Counting up [0 to 5]
        {
            arr_2[i] = arr_1[i];
        }

        for (int i = 0; i < arr_2.length; ++i)
        {
            System.out.print(arr_2[i] + " ");
        }
    }
}
  1. 始终(如果可能)在函数/类/程序的开头声明所有变量。它使代码更加简洁,并帮助您识别可能发生的错误。

  2. 保持循环参数一致。从 0 开始一直向上,或者从最后一个值开始向下。它消除了再次出错的可能性。我更喜欢总是从 0 开始,但这取决于你,只要它干净并且有效。

  3. 除非你初始化一个数组,否则它将会是空的。如果您尝试从中打印,您很可能会看到零。

关于java - 为什么我的java程序每次都打印零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35249071/

相关文章:

java - Apache 没有将完整的参数传递给 JBoss 6/Spring Web MVC

java - 为什么对数组组件赋值的类型检查是在运行时完成的?

python - 如何处理错误的值不足以解开for循环

python - 我想在 for 循环中串联运行多个变量,并且我想获取 x 和 y 每次迭代的总和

python - 迭代包含重复元素的列表

java - 如何使用 EditText 和 RadioButtons(以及颜色集)顺利存储用户输入数据?

java - 在Java中删除?

java - CompactDecimalFormat 能否以某种方式用于格式化货币值?

C 创建数组并检查输入错误

javascript - 如何在 Javascript 中使用 JSON 进行多维搜索?