【问题标题】:I keep receiving a .class expected error [duplicate]我不断收到 .class 预期错误 [重复]
【发布时间】:2012-04-28 00:49:15
【问题描述】:

这是我应该做的:

编写一个程序来读取一个 4x4 的二维数组。然后读取数组的第一个元素并将其与每列的第三个元素进行比较。用两者中较大的值替换较小的值。创建一个名为 swap 的方法来交换值。

我不确定我做错了什么,我才刚刚开始学习数组。我的老师非常概念化,对他的定义不是很具体,所以我遇到了麻烦。我不断收到 .class 预期错误。

public class Array {

    public static void main(String[] args) {       
        int num [][] = {{4, 6, 7, 2},
                        {5, 12, 9, 8},
                        {1, 0, 3, 10},
                        {5, 3, 14, 11}};

        System.out.println("the array elements are:");
        for(int i = 0; i < num.length; i++){
            System.out.println();
            for(int j = 0; j < num[i].length; j++)
                System.out.print(num[i][j] + " ");
        }

        System.out.println("swaped elements are:");
        for(int i = 0; i < num.length; i++){
            System.out.println();
            for(int j = 0; j < num[i].length; j++)
                System.out.print(swap(num[][]) + " ");
        }
    }

    public static void swap (int x[][]){
        for(int i = 0; i < x.length; i++){
            int temp = x[0][i];
            if (x[0][i] > x[2][i] ){
                x[2][i] = temp;
                x[0][i] = x[2][i];
            }
        }
    }
}

【问题讨论】:

  • 你的问题是什么?你有错误吗?如果您粘贴一些输出,它会有所帮助
  • 这对应于duplink中的someMethod(array[]);示例

标签: java arrays methods swap


【解决方案1】:

swap() 不返回任何内容。即使您确实解决了其他问题(num[][] 是语法错误),您也需要指定从交换返回的内容。提示:可能是你修改的数组。

【讨论】:

  • 没有。您不能将另一个数组绑定到传递的对象名称,但您在数组内部执行的更改将反映在原始对象中。 Java是pass by copy of reference,所以引用被复制了,但不是深拷贝。
  • 你可能是对的 - 但如果 OP 希望 print,那么他们将需要获得某种 return value。跨度>
  • 伙计们,我知道我做错了什么,是的,我无法打印数组值,因为交换不返回任何内容。我所做的只是执行 swap(num);
  • System.out.println(); System.out.println("交换的元素是:"); for(int i = 0; i
  • @p3ruviansoldi3r:在循环内部(您删除了System.out.print)内部没有真正意义,因为swap 每次都在内部循环遍历元素。你会做这个交换num.length * num[i].length次。
【解决方案2】:
  • 编写程序以读取 4x4 的二维数组。

我没看到你在读什么。只是初始化它。也许您应该从标准输入或文件中读取?

  • 然后读取数组的第一个元素并将其与每列的第三个元素进行比较。
  • 将较小的值替换为两者中较大的值。
  • 创建一个名为 swap 的方法来交换值

作为一种交换方法,我希望一个方法具有 4 个索引,用于 2D 数组中的 2 个位置,交换值所在的位置。

public static void swap (int x[][], int i1, int i2, int j1, int j2) {
    int temp  = x[i1][j1];
    x[i1][j1] = x[i2][j2];
    x[i2][j2] = temp;
}

您听说过简化的 for 循环吗?

public static void show (int x[][]) {
    for (int [] inner : x)
        for (int i : inner)
            System.out.print (i + " ");
}

【讨论】:

  • 不,我不知道如何使用简化的 for 循环,我会尝试将其合并到我的代码中,谢谢:D!
猜你喜欢
  • 1970-01-01
  • 2013-04-05
  • 1970-01-01
  • 2017-06-15
  • 2013-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多