我正在为 Android 制作一个骰子游戏,我有一个循环,它用滚动“j”时滚动的编号填充数组。事情是这样的
int[] rolls = new int[6];
for (int j : rolls) {
rolls[j] = (int) (Math.random() * 5);
rolls[j]++;
Log.i(getClass().getName(), "Rolls[" + j + "] = " + rolls[j]);
}
除了输出(在日志文件中是这样的)
Rolls[0] = 4
Rolls[0] = 2
Rolls[0] = 3
Rolls[0] = 6
Rolls[0] = 3
Rolls[0] = 4
当我将代码更改为这个时
int[] rolls = new int[6];
for (int j = 0; j < rolls.length ; j++) {
rolls[j] = (int) (Math.random() * 5);
rolls[j]++;
Log.i(getClass().getName(), "Rolls[" + j + "] = " + rolls[j]);
}
输出正确
Rolls[0] = 4
Rolls[1] = 2
Rolls[2] = 3
Rolls[3] = 6
Rolls[4] = 3
Rolls[5] = 4
我一定是在什么地方做了蠢事。
最佳答案
声明:
for (int j : rolls)
遍历 rolls
中的条目,而不是索引。由于在 Java 中数组被初始化为 0,因此对于 6 次迭代中的每一次,值 j
都为零。
关于java - 这个for循环有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5453996/