不确定这里的错误是错误的。
if((board[z][i] = 1) && (board[z][i++] = 1) && (board[z++][i] = 1)){
这是我的完整代码:
public class Solution {
static void nextMove(int player, int [][] board){
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int player;
int board[][] = new int[8][8];
//If player is 1, I'm the first player.
//If player is 2, I'm the second player.
player = in.nextInt();
//Read the board now. The board is a 8x8 array filled with 1 or 0.
for(int z = 0; z < 8; z++){
for(int i = 0; i < 8; i++) {
board[(z)][(i)] = in.nextInt();
}
}for(int z = 0; z < 8; z++){
for(int i = 0; i < 8; i++) {
if((board[z][i] = 1) && (board[z][i++] = 1) && (board[z++][i] = 1)){
System.out.print(z + " " + i);
}
}
}
nextMove(player,board);
}
}
答案 0 :(得分:2)
您需要使用关系运算符==而不是=。 if语句的括号内的3个子语句中的每一个都应该表示一个布尔值。在Java中,=用于分配值,==用于检查相等性。因此,您必须将if语句更改为:
if((board[z][i] == 1) && (board[z][i++] == 1) && (board[z++][i] == 1)){
此外,不是将z和i递增1(因为你已经将其作为for循环的一部分),也许make i ++ - &gt; i + 1和z ++ - &gt; z + 1。
希望这有帮助!
答案 1 :(得分:1)
if((board[z][i] ==1) && (board[z][i++] == 1) && (board[z++][i] == 1)){
使用double equals进行比较。我想你错过了它: - )
答案 2 :(得分:1)
当您应该比较它们时,您正在使用赋值运算符。
if((board[z][i] == 1) && (board[z][i++] == 1) && (board[z++][i] == 1)){
答案 3 :(得分:1)
if((board[z][i] = 1) && (board[z][i++] = 1) && (board[z++][i] = 1)) //Yes this line is wrong
您在(board[z][i] = 1)
(board[z][i++] = 1)
(board[z++][i] = 1)
处使用'='进行这些比较。您需要使用'=='操作数进行比较。
'='运算符用于将值分配给变量,而'=='用于比较。 只需添加一个点,当比较两个字符串的值时,您必须使用 .equals()方法,因为'=='比较在Java上引用对象。
答案 4 :(得分:1)
你的代码不应该
if((board[z][i] == 1) && (board[z][i++] == 1) && (board[z++][i] == 1)){
强调 == 问题
答案 5 :(得分:1)
您使用赋值(=)运算符而不是检查它们是否相等。使用==运算符检查相等性。 试试这个
if((board[z][i] ==1) && (board[z][i++] == 1) && (board[z++][i] == 1)){