java - 这个for循环有什么问题?

标签 java android

我正在为 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/

相关文章:

java - 通过tomcat在servlet中运行python脚本不起作用

java - 如何使用带有@SerializedName 注释的gson 进行序列化?

java - Mms-computing.co.uk twain 库文档

java - 使用扫描仪读取Java中输入的许多字符串

android - 有必要拯救单例吗?

Android:滑动菜单更改内容

android - dagger android支持proguard规则

java - 仅接受来 self 的应用程序的连接

android - 两个 ListView 并排

android - underlineColorAndroid 不能在 android 中工作