我有以下代码:
public boolean prontoParaJogar() throws RemoteException {
int i;
int j;
if (this.jogadores==2) {
this.jogando=1;
for (i=0;i<3;i++)
for(j=0;j<3;j++) {
this.tabuleiro[i][j]=0;
}
for (i=0;i<3;i++) {
System.out.println("Linha "+i+": ");
System.out.print(this.tabuleiro[i][0]+' ');
System.out.print(this.tabuleiro[i][1]+' ');
System.out.print(this.tabuleiro[i][2]);
System.out.println("");
}
return true;
} else {
return false;
}
}
正在打印以下退出:
Linha 0: 32320 Linha 1: 32320 Linha 2: 32320 Linha 0: 32320 Linha 1: 32320 Linha 2: 32320
这不是我的预期。它应该是以下输出:
Linha 0: 0 0 0 Linha 1: 0 0 0 Linha 2: 0 0 0
我无法弄清楚为什么它没有按预期运行。
答案 0 :(得分:12)
那是因为你要在变量中添加' '
,因为' '
是一个带有asci代码32的字符,它会在你的数组中添加32到0的值并打印32.你必须写两个打印件根据需要编制输出结果。
答案 1 :(得分:10)
this.tabuleiro[i][0]+' '
' '
是空格的字符,其ascii值为32
。单引号表示char
值不是String
this.tabuleiro[i][0]+" "
将连接一个空格。
答案 2 :(得分:6)
您正在添加0 + 32,因为''是空格而且是32 ASCII,而不是进行字符串连接。改为
System.out.print(this.tabuleiro[i][0]+" ");
答案 3 :(得分:1)
在输出行中,您使用的是+ ' '
。这会在tabuleiro的每个条目中添加字符''(字符值32)。您需要使用+ " "
。
答案 4 :(得分:1)
也不要这样做:
for (i=0;i<3;i++)
for(j=0;j<3;j++) {
this.tabuleiro[i][j]=0;
}
而是这个:
for (i=0;i<3;i++) {
for(j=0;j<3;j++) {
this.tabuleiro[i][j]=0;
}
}
或在将来某个时候你可能会这样做:
for (i=0;i<3;i++)
System.out.println("i=" + i);
for(j=0;j<3;j++) {
this.tabuleiro[i][j]=0;
}
并且惊讶于第二个循环没有被执行三次。