奇怪的数组运行时错误

时间:2014-10-25 21:55:28

标签: java arrays

我刚刚开始学习Java,我遇到了一个问题,我在下面的代码中遇到了无法解决的问题。

该程序应打印两次数字1-9,程序执行。但是,每运行4-6次(大约)程序,控制台会在两个1-9列表后面打印一个额外的数字。为什么会发生这种情况?如何防止这种情况发生?

提前谢谢! 干杯!

import java.util.Scanner;

public class ArrayTesting
{
    public static void main (String[] args)
{
    int[][] matrix = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
    for(int i = 0; i < matrix.length; i++)
    {
        for(int j = 0; j < matrix[i].length; j++)
        {
            System.out.println(matrix[i][j]);
        }
    }
    System.out.println();
    int [][] newArray = solver(matrix);
    for(int k = 0; k < newArray.length; k++)
    {
        for (int l = 0; l < newArray[k].length; l++)
        {
            System.out.println(newArray[k][l]);
        }
    }
}
public static int[][] solver(int[][] matrix)
{
    return matrix;  
}
}

2 个答案:

答案 0 :(得分:0)

我建议你拨打Arrays.deepToString(Object[]),你的代码看起来像

int[][] matrix = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
System.out.println(Arrays.deepToString(matrix));
int[][] newArray = solver(matrix);
System.out.println(Arrays.deepToString(newArray));

答案 1 :(得分:0)

我从终端运行了这段代码,脚本运行了100次。没有额外的号码。如果您在IDE中工作,我建议您按“清理项目”按钮。如果这不起作用,您可以重新启动IDE,并作为最后的手段,清除缓存。