Java:循环和数组递增

时间:2013-11-23 14:05:43

标签: java

我希望程序继续为循环的每次迭代增加局。 当我运行该程序时,它正在执行该操作,但它显示的是不正确的值。

例如: 你滚... 4 到目前为止你的总数是6

第二行应该显示,“......到目前为止是4”

这是我目前的代码:

import java.util.Random;
import javax.swing.*;

public class shortSix {

    public static void main(String[] args) {
        diceGame();
}//ENDS MAIN
    public static void diceGame()
    {
        final int[] innings = new int[1];
        innings[0] = 0;

        Random dice = new Random();
        int diceRoll = dice.nextInt(6) + 1;

        while (diceRoll != 5)
        {
            System.out.println("You rolled..." + diceRoll);
            diceRoll = dice.nextInt(6) + 1;
            innings[0] =+ diceRoll;
            System.out.println("Your total for this innings so far is " + innings[0]);

            String userDeclare = JOptionPane.showInputDialog(null, "Do you wish to declare?");
            if (userDeclare.equals("yes"))
            {
                System.exit(0);
            }

        }
    }//ENDS diceGame
}//ENDS class shortSix

3 个答案:

答案 0 :(得分:4)

问题是您在第一次滚动后没有更新阵列记录。您已经int diceRoll = ...,然后再次将随机值分配给变量,并在第二次滚动后添加分数。第一个结果被忽略了。你所要做的就是改变

diceRoll = dice.nextInt(6) + 1;
innings[0] =+ diceRoll;

innings[0] =+ diceRoll;
diceRoll = dice.nextInt(6) + 1;

答案 1 :(得分:2)

有两个问题:

    在第二次println 之前,
  1. = +而不是+ =
  2. 操作顺序很奇怪。首先打印当前值,然后更新它,然后只增加计数器并打印摘要。可能你想在第二次println之后移动diceRoll =骰子

答案 2 :(得分:1)

你打电话

diceRoll = dice.nextInt(6) + 1;
打印前

 System.out.println("Your total for this innings so far is " + innings[0]);

导致产生一个新的随机数,这就是问题所在。