for (i=1; i < 9; i++) {
for (j=1; j < 9; j++) {
if ( board[i][j] == "o" ) {
j = j-1;
if ( board[i][j] == "x" ) {
do {
j--;
}
while (board[i][j] != "-");
board[i][j] = ".";
}
}
}
}
我将这段代码作为方法的一部分,有两个版本,一个如上所述,另一个j = j-1替换为j = j + 1,j--替换为j ++
正面版本工作得很好但是如果我放入负面版本,代码编译得很好但是当我尝试运行时没有任何反应,控制台只是挂起而我必须关闭并重新打开它。谁能告诉我我做错了什么?提前谢谢。
编辑:
for (i=1; i < 9; i++) {
for (j=1; j < 9; j++) {
if ( board[i][j].equals("o") ) {
j = j-1;
if ( board[i][j].equals("x") ) {
do {
j--;
}
while (!board[i][j].equals("-"));
board[i][j] = ".";
}
}
}
}
我已根据指示编辑了代码,但问题仍然存在
答案 0 :(得分:1)
你的逻辑错了。你永远不会改变包含“x”的方块,所以你一直在遇到它,所以你继续递减j,
所以你下次会再次遇到它,所以......