任何人都可以解释它实际上如何工作吗?香港专业教育学院一直认真地检查我的笔记的每一步,并写下所有,它的确很好,但为什么总是4点?当我用0初始化它时,对我来说就没有意义...
Random rand = new Random();
int[][] map = new int[row][column];
int spot = 0;
int i=0;
int j=0;
/*ignore this part
for(i = 0; i<map.length; i++){
for(j = 0; j<map[i].length; j++) {
map[i][j] = rand.nextInt(2);
}
System.out.println();
}*/
System.out.println();
for(i =0; i<map.length; i++){
for(j =0; j<map[i].length; j++){
if(map[i][j] == 1){
while(spot<4){
map[i][j] = 5;
spot++;
}
}
System.out.print(map[i][j]+" ");
}
System.out.print(spot);
System.out.println();
}
System.out.println();
}
答案 0 :(得分:1)
我不确定您要使用spot
做什么,但这是您的问题。第一次if(map[i][j] == 1)
为真时,您会将spot
增加到4,因此不会再次执行while(spot<4)
。如果删除它,它将起作用。
if(map[i][j] == 1){
map[i][j] = 5;
}
修改
根据注释,如果您只想替换4 1
,则可以将替换内容提取到方法中,并在交换4 1
后立即返回
public void replaceOnes(int[][] map) {
int spot = 0;
for(int i = 0 ; i < map.length ; i++){
for(int j = 0 ; j < map[i].length ; j++){
if(map[i][j] == 1){
map[i][j] = 5;
spot++;
if (spot == 4) {
return;
}
}
}
}
}
replaceOnes(map);
for(i = 0; i<map.length; i++){
for(j = 0; j < map[i].length; j++){
System.out.print(map[i][j]+" ");
}
System.out.println();
}