0

我正在创建一个名为swapElements(). 它需要一个整数数组和两个整数索引。该方法应该用指定的索引交换数组元素的值。

public class{
  int swapElements(int[] number, int value1, int value2){
        int temp = number[value1];
        number[value1] = number[value2];
        number[value2] = temp;
    }
}
4

4 回答 4

3

正如您所介绍的,此方法不需要返回任何内容,并且可能应该声明为void. 但是,如果有一个特定的合同需要履行,那么您应该返回接口定义所说的应该返回的任何内容。

于 2013-10-02T01:24:33.890 回答
2

您的代码有四个问题。

  1. 您要问的是: use return number;,因为您想返回带有交换元素的数组。
  2. 使方法返回int[](like int[] swapElements),而不是int.
  3. 你的班级没有名字。您需要添加一个名称,例如public class IntArraySwapper { ....
  4. 你的方法应该是static. 如果不使用该关键字,您必须在实例上调用它,例如new IntArraySwapper().swapElements(...). 由于此方法与类实例无关,因此只需将其设为 static( static int[] swapElements),以便您可以将其称为IntArraySwapper.swapElements(...).

请注意,该方法还将修改原始数组,因此从技术上讲,您不需要返回任何内容。如果你愿意,你可以把它变成一个void方法并使用旧数组。

于 2013-10-02T01:24:24.790 回答
2

你可以让它返回无效。或者可能是一个布尔值,表示锯齿发生了,没有错误。像索引超出范围错误。

于 2013-10-02T01:24:55.877 回答
0

在这种情况下,return类型不是严格要求的。所以,你应该返回void. 但是,如果您确实想要返回某些东西,请考虑返回boolean以指定交换是否发生。更准确地说,您可以将交换代码包含在try catch块中,True如果交换发生时没有任何错误,则返回块,False否则返回。

于 2013-10-02T01:26:03.583 回答