“列”无法解析为变量

时间:2013-10-10 19:40:52

标签: java variables

我正在尝试一些新波士顿视频的练习,但无法让它发挥作用!我是java的新手,这是我的第一堂课。我有一个二维数组的任务,我无法弄清楚如何让它在屏幕上显示。这个练习来自Thenewboston的Java教程,视频#34,对他有用!

public class inventory {
public static void main (String[] args) {
    int firstarray[][]= {{8,9,10,11},{12,13,14,15}};
    int secondarray[][]={{30,31,32,33},{43},{4,5,6}};

    System.out.println("This is the first array");              
    display(firstarray);
    System.out.println("This is the second array");
    display(secondarray);
    }


public static void display (int x[][])
{
    for(int row=0;row<x.length;row++)
    {
        for(int column=0;column<x.length;column++);
            System.out.print(x[row][column]+"\t");
        }

     { 

    System.out.println();
     }

} }

2 个答案:

答案 0 :(得分:6)

你在for循环之后放了;,否定了你认为它的身体。摆脱

for(int column=0;column<x.length;column++); // <--- this ; 

在这种情况下,声明for变量且具有范围的column循环的主体是)之后和;之前的所有内容。换句话说,没什么。实际上,您需要将;替换为{


正确的缩进将帮助您编写语法正确的代码。

答案 1 :(得分:1)

在循环结束时你有分号,而不是很好的格式化。还有两个括号,绝对没用:)。正确的代码可能如下所示:

public static void display(int x[][]) {
    for (int row = 0; row < x.length; row++) {
        for (int column = 0; column < x.length; column++) {
            System.out.print(x[row][column] + "\t");
        }
        System.out.println();
    }
}

显示功能仍然不正确,最后失败,因为行和列的长度不同。

如果你想在第二个周期中使用它,你应该考虑实际ROW的长度,而不是多少行(x.length)。

您只需将column < x.length更改为column < x[row].length

即可

所以工作代码是这样的:

public static void display(int x[][]) {
    for (int row = 0; row < x.length; row++) {
        for (int column = 0; column < x[row].length; column++) {
            System.out.print(x[row][column] + "\t");
        }
        System.out.println();
    }
}