Java在数组中获取值0

时间:2019-04-02 04:48:33

标签: java

所以我必须为我的课程做一个啤酒乒乓游戏,但是当我尝试打印出我在数组cups1 [#],cups2 [#]中插入的值时,它们都出来了,就好像我插入了一个数字0,我没有得到,因为我没有将0插入到数组中的任何内容,并且每次打印时,我在控制台中看到很多0。我在杯子中插入的每个球都必须有一个数字,这就是为什么我要打印哪个球去了我的杯子是我的杯子阵列的原因,我将添加一个for循环以数组形式打印数字,但是如我所知想知道为什么数组只插入0 s。

这是我的代码。

public static void main(String[] args) {
    int cups1[] = new int[9];

    int cups2[] = new int[9];

    int cup1 = 1;

    int cup2 = 1;

    int balls = 1;

    for (int i = 0; i < 1000; i++) {
        int random = (int) (Math.random() * 2);

        if (random == 0) {
            cups1[cup1] = balls;
            cup1++;
            balls++;
            System.out.println(cups1[cup1]);
        }

        if (random == 1) {
            cups2[cup2] = balls;
            cup2++;
            balls++;
            System.out.println(cups2[cup2]);
        }

        if (cups1[0] >= 1 && cups2[0] >= 1) {
            break;
        }
    }
}

这是我得到的输出 Output

1 个答案:

答案 0 :(得分:0)

让我们剖析代码,向您展示为什么会发生这种情况:

cups1[cup1]=balls; // #1
cup1++; // #2
balls++;
System.out.println(cups1[cup1]); // #3

我们假设这是第一轮,所以cup1为1,而balls为1。

  • 第1行:您将球(1)的当前值分配给cups1[1]cups1现在包含“ 0,1,0,0,0,0,0,0,0”
  • 第2行:您增加了cup1,所以cup1现在是2
  • 第3行:您打印出cups1[2],其默认值仍为0

通过对行进行重新排序,您将看到分配的数字:

cups1[cup1]=balls;
System.out.println(cups1[cup1]);
cup1++;
balls++;

完整的代码可能仍然无法满足您的要求,但这很难告诉...