【发布时间】:2014-10-22 19:15:27
【问题描述】:
所以我有我的主要方法,它应该有一个 1-20 打印的数组,然后我应该为每个偶数出现在循环中传递该数组。 swap 方法会将数组中的偶数与下一个数字进行切换……所以在数组 [1, 2, 3, 4, 5,..] 中,2 和 3 会切换,4 和 5 会切换.
这里是主要方法:
public class Lab_01_Tester {
public static void main (String[] args) throws FileNotFoundException
{
PrintWriter writer = new PrintWriter("Lab_01_nums.txt");
int[] randArray = Lab_01_ArrayUtilities.buildIntArray(20, 10, 29);
String randArrayString = Arrays.toString(randArray);
writer.write(randArrayString);
System.out.print(randArrayString);
writer.close();
for (int i = 0; i < randArray.length - 1; i++)
{
if (randArray[i] % 2 == 0)
{
Lab_01_ArrayUtilities.swap (randArray, i, i + 1);
i = i +1;
}
else;
}
System.out.println();
System.out.print(randArrayString);
}
}
这是randArray 被传递给的swap 方法:
public static int[] swap (int[] randArray, int i, int j)
{
int temp = randArray[i];
randArray[i] = randArray[j];
randArray[j] = temp;
return randArray;
}
我的问题是,数组传回来的时候,没有变化
【问题讨论】:
-
也许是这样,
randArray = Lab_01_ArrayUtilities.swap (randArray, i, i + 1);? -
你仔细测试过这个吗?只是快速通读,但看起来 swap() 应该可以工作。
-
是的,没有必要返回数组。无论如何,该方法都将起作用。可能是其他代码的问题,像
else;这样的东西看起来很糟糕。
标签: java arrays sorting return parameter-passing