Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 试图制作战舰,但字符串[][]板将无法正确更新_Java - Fatal编程技术网

Java 试图制作战舰,但字符串[][]板将无法正确更新

Java 试图制作战舰,但字符串[][]板将无法正确更新,java,Java,当我输入一个等于(ship1[2][0],ship1[2][1])的用户猜测时,userGuess[y,x]会与ship1[][]进行比较,但只会在匹配索引处用“!”更新board[][] 换句话说,我将updateBoard()输入int[]userGuess,updateBoard循环通过int[]]ship1并将userGuess[0]与ship1[0][0]和userGuess[1][1][1][1][1][1][2][1][1][code>,查看它们是否匹配,但我得到的唯一匹配是输入一

当我输入一个等于
(ship1[2][0],ship1[2][1])的用户猜测时,
userGuess[y,x]
会与
ship1[][]
进行比较,但只会在匹配索引处用
“!”
更新
board[][]

换句话说,我将
updateBoard()
输入
int[]
userGuess,
updateBoard
循环通过
int[]]ship1
并将
userGuess[0]
ship1[0][0]
userGuess[1][1][1][1][1][1][2][1][1][code>,查看它们是否匹配,但我得到的唯一匹配是输入一个userGuess,该值等于
(ship1[2][0],ship1[2][1])

有人知道我做错了什么吗

packageassignment_8;
导入java.util.Scanner;
公共级战舰{
私有字符串[][]板=新字符串[8][8];
私有整数[][]ship1=新整数[3][2];
私有整数[][]ship2=新整数[4][2];
专用int计数器;
战列舰(){
}
公共空白制作板(){
对于(int i=0;i=5){
ship1X=4;
}
对于(int i=0;i=4){
ship2Y=3;
}
对于(int i=0;i=5){
ship1Y=4;
}
对于(int i=0;i=4){
ship2X=3;
}
对于(int i=0;i
问题在于以下条件检查:

if(ship1[i][0] == userInput[0] && ship1[i][1] == userInput[1]) {
    board[userInput[0]][userInput[1]] = "|!";
    if(userInput[1] == 7) {
        board[userInput[0]][userInput[1]] = "|!|";
    }
} else {
    board[userInput[0]][userInput[1]] = "|X";
    if(userInput[1] == 7) {
        board[userInput[0]][userInput[1]] = "|X|";
    }
}
如果用户给出的坐标与
ship1[0][0]
ship1[0][1]
匹配,则分配
返回,但循环继续,下两个ship1数组值将不匹配,从而将其重置为
X

解决方法是在找到匹配项时将
从循环中断开

if(ship1[i][0] == userInput[0] && ship1[i][1] == userInput[1]) {
    board[userInput[0]][userInput[1]] = "|!";
    if(userInput[1] == 7) {
        board[userInput[0]][userInput[1]] = "|!|";
    }
    break; // that's it!
}

当您使用调试器逐步完成此操作时,它的行为与您预期的不同的第一点是什么?我没有抛出任何错误,它只是没有在我预期的位置添加“!”命令,它的行为与您预期的不同的第一点是什么?更新:我不知道dubugger是什么,我看了一个视频,想看看我是否能成功地使用eclipse调试器来解决这个问题updateBoard()中的第二个“if”语句哈哈,该死,我讨厌它这么小