我对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
如果有人可以帮助我,那将非常感激。因为我是新手,所以我可能会忽略一些小而基本的东西。
答案 0 :(得分:-1)
问题是第二行末尾的分号。有一个没有正文的for
循环是有效的。在括号内放置一个独立的代码块也是有效的(这定义了变量的范围 - 如果你在括号内定义了一个变量,它就不会在外面可用)。所以Java正在解释你的代码的开头:
for(i = 0; i <= (difficulty - 2); i++); // for loop is done, so i = difficulty - 2
{
System.out.println(i);
...
答案 1 :(得分:-1)
您的for循环语句以您使用的分号结尾
for(i = 0; i <= (difficulty - 2); i++); <- incorrect
for(i = 0; i <= (difficulty - 2); i++){ <- correct
//body
}
答案 2 :(得分:-1)
For循环是终止分号;
的原因for(i = 0; i <= (difficulty - 2); i++); //semicolon terminating loop
{...}
所以你应该像这样使用for循环
for(i = 0; i <= (difficulty - 2); i++) //remove semicolon prevent to terminate
{...}