我希望程序继续为循环的每次迭代增加局。 当我运行该程序时,它正在执行该操作,但它显示的是不正确的值。
例如: 你滚... 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
答案 0 :(得分:4)
问题是您在第一次滚动后没有更新阵列记录。您已经int diceRoll = ...
,然后再次将随机值分配给变量,并在第二次滚动后添加分数。第一个结果被忽略了。你所要做的就是改变
diceRoll = dice.nextInt(6) + 1;
innings[0] =+ diceRoll;
到
innings[0] =+ diceRoll;
diceRoll = dice.nextInt(6) + 1;
答案 1 :(得分:2)
有两个问题:
答案 2 :(得分:1)
你打电话
diceRoll = dice.nextInt(6) + 1;
打印前
System.out.println("Your total for this innings so far is " + innings[0]);
导致产生一个新的随机数,这就是问题所在。