Java:While循环和数组递增
我希望程序在循环的每次迭代中不断增加局数。 当我运行程序时,它正在这样做,但是它显示了不正确的值 例如: 你滚了…4 到目前为止,你这一局的总数是6局 第二行应该显示“…到目前为止是4” 这是我目前掌握的代码:Java:While循环和数组递增,java,Java,我希望程序在循环的每次迭代中不断增加局数。 当我运行程序时,它正在这样做,但是它显示了不正确的值 例如: 你滚了…4 到目前为止,你这一局的总数是6局 第二行应该显示“…到目前为止是4” 这是我目前掌握的代码: import java.util.Random; import javax.swing.*; public class shortSix { public static void main(String[] args) { diceGame(); }//END
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
问题在于,在第一次滚动之后,您没有更新数组记录。您得到了
int diceRoll=…
,然后再次将随机值赋给变量,并在第二次掷骰后添加分数。第一个结果被忽略。你所要做的就是改变
diceRoll = dice.nextInt(6) + 1;
innings[0] =+ diceRoll;
到
你打电话
diceRoll = dice.nextInt(6) + 1;
印刷前
System.out.println("Your total for this innings so far is " + innings[0]);
这导致产生一个新的随机数,这就是问题所在。有两个问题:
为什么要定义
innings
呢final
?我应该使用final变量来存储这个问题的值=+
在innings[0]=+dicerll
中的=+
的目的是什么?啊,这很有意义。我现在已经改了,效果很好。我会把这个标记为接受的答案,但是我还要再等7分钟。我改变了顺序,并将=+修改为+=
System.out.println("Your total for this innings so far is " + innings[0]);