[英]error: bad operand types for binary operator '&&'
不知道這里出了什么問題是那行錯了。
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);
}
}
您需要使用關系運算符==代替=。 if語句括號內的3個子語句中的每一個都應表示一個布爾值。 在Java中,=用於分配值,而==用於檢查相等性。 因此,您必須將if語句更改為:
if((board[z][i] == 1) && (board[z][i++] == 1) && (board[z++][i] == 1)){
另外,不要將z和i加1(因為您已經在for循環中進行了此操作),而應使i ++-> i + 1和z ++-> z + 1。
希望這可以幫助!
if((board[z][i] ==1) && (board[z][i++] == 1) && (board[z++][i] == 1)){
使用double等於進行比較。 我想你錯過了它:-)
您應該在比較它們時使用賦值運算符。
if((board[z][i] == 1) && (board[z][i++] == 1) && (board[z++][i] == 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中對對象的引用進行比較。
您的代碼不應該是
if((board[z][i] == 1) && (board[z][i++] == 1) && (board[z++][i] == 1)){
強調==問題
您使用賦值(=)運算符,而不是檢查它們是否相等。 用==運算符檢查相等性。 試試這個
if((board[z][i] ==1) && (board[z][i++] == 1) && (board[z++][i] == 1)){
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.