JAVA输出语句问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 09:29:39
public class Matrix{
public static void main(String[] args) {
// Initialize a two-dimesional arrahy
double m[][] ={
{0*0,1*0,2*0,3*0},
{0*1,1*1,2*1,3*1},
{0*2,1*2,2*2,3*2},
{0*3,1*3,2*3,3*3}
};
int i,j;
for(i=0;i<4;i++){
for(j=0;j<4;j++)
System.err.print(m[i][j] + " ");
System.out.println();
}
}
}

输入如下结果:
0.0 0.0 0.0 0.0 0.0 1.0 2.0 3.0 0.0 2.0 4.0

6.0 0.0 3.0 6.0 9.

再次编译得出如下结果:
0.0
0.0 0.0 0.0 0.0 1.0 2.0
3.0 0.0 2.0 4.0 6.0
0.0 3.0 6.0 9.0

再次编译:
0.0 0.0 0.0 0.0 0.0 1.0 2.0 3.0

0.0 2.0 4.0 6.0 0.0 3.0 6.0 9.0
再三编译:
0.0 0.0 0.0 0.0

0.0 1.0 2.0 3.0 0.0 2.0 4.0 6.0
0.0 3.0 6.0 9.0

请问这个是什么原因产生的???
在调试状态下则显示正常,是否编译器的问题,还是在控制台显示的问题?

因为你的err输出和out输出的两个流,所以输出不同步的(因为他们两个流会抢占IO资源,所以输出的顺序不一定一致)。。。
用用一个流输出即可

奇怪

一个是错误打印,一个是输出打印,
虽然一般都是打印到同一个地方,但是据说可以重定向到别的输出设备或者文本

我运行的时候每次的结果都是相同的啊!也没有空格的问题,我想是你的编译器有问题吧!

三次的结果都是一样的,但是至于为什么中间会出现空格,就有点难说清楚了。
可能是编译器的问题吧!!
如果
System.err.print(m[i][j] + " ");
//System.out.println(); 把这一行给注释掉的话就没有问题了。