我正在使用以下内容:
private char [][] board;
<various lines of code>
//Sequential searching for an index that has yet to be
//changed from the default char character
for(int i = 0; i< board.length; i++)
{
for(int j = 0; j>board[i].length; j++)
{
//Here I get the error "incomparable types: char and char[]
if('\u0000' == board[j])
System.out.println("Game unfinished.");
}
//Here I get the error "incomparable types: char and char[]
if('\u0000' == board[j])
System.out.println("Game unfinished.");
}
else return 'T';
本质上,我想遍历数组,做两件事之一:
如果找到带有'\ u0000'的数组索引,请执行:
System.out.print(“游戏未完成。”);
答案 0 :(得分:1)
你有两个错误。
首先将j>board[i].length
更改为j<board[i].length
然后你必须将char与char进行比较,在2D char中,你必须同时指定维度,获取char,只指定一个意味着你只指定chars的行或列(因此它是char数组)。
比较应如下所示:if('\u0000' == board[i][j])
答案 1 :(得分:1)
首先,您要添加一个空检查,以防万一。然后,修复@libik指示的for条件。最后,通过i和j indecies引用单元格。 e.g:
for(int i = 0; i < board.length; i++) {
//Always check for nulls, unless you're 100% certain of the data
if (board[i] != null) {
for(int j = 0; j < board[i][j].length; j++) {
//Here I get the error "incomparable types: char and char[]
if('\u0000' == board[i][j]) {
System.out.println("Game unfinished.");
}
}
}
关于第二个if语句和返回&#39; T&#39;这些不具备意义。你想要回归&#39; T&#39;如果没有&#39; \ u0000&#39;在数组中找到的字符?如果是这样,创建一个布尔标志,将其初始化为false,然后在上面的if语句的else条件下设置它。在循环之外,添加第二个if以查看是否已设置标志并返回&#39; T&#39;。