我对Java相当陌生,但是我的for循环立即跳到以下代码中的最高可能值:
System.out.println(i); for(i = 0; i <= (difficulty - 2); i++);{ System.out.println(i); nextMineX = (int) (10*Math.random()); nextMineY = (int) (10*Math.random()); for(y = 0; y <= 14; y++){ System.out.println(y); if(nextMineX == minesX[y] && nextMineY == minesY[y]){ i = i-1; } else{ minesX[i] = nextMineX; minesY[i] = nextMineY; } } }
第一个for循环正在搞砸,而嵌套的则运行良好。变量i初始化为0,难度为16。此摘录的输出如下:
0 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
如果有人可以帮助我,将不胜感激。由于我是新手,因此我可能忽略了一些小而基本的东西。
问题是第二行末尾的分号。for没有主体的循环是有效的。在方括号内具有独立的代码块也是有效的(这定义了变量的作用域- 如果在方括号内定义了变量,则外部将无法使用该变量)。因此,Java正像这样解释代码的开头:
for
for(i = 0; i <= (difficulty - 2); i++); // for loop is done, so i = difficulty - 2 { System.out.println(i); ...