如何制作一个通过先前方法的for循环?

时间:2014-11-12 05:30:02

标签: java arrays loops for-loop methods

我目前的代码有两种方法。我试图让第一个位置切换到第二个位置。例如,一些输入6&我想让它成为7& 6,但在我的情况下,它们是预定义的,并且超过两位数。

我的第一种方法:

static void nameSwitch (int[] array, int pos1, int pos2 ) {

    int temp = array[pos1];       /*As you all may know, this is the switching of 
    array[pos1] = array[pos2];    position 1 and 2.*/
    array[pos2] = temp;

}

我的第二种方法:

static void lastToFirstName() {
    int [] values = {1,2,3,4,5,6,7,8,9,10};
    for(//this is where I am stuck at.)


    System.out.println(Arrays.toString[values]);
 }

我想输出为[21436587109],我的问题是在其他方法中实现该方法并使循环正确。

4 个答案:

答案 0 :(得分:2)

因此,在我看来,您正在values中切换其他所有字词。

原始输入:

int[] values = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

这可以在for循环结构中完成,该循环的结构类似于“跳转”到其他每个术语并相应地执行切换操作:

for (int i = 0; i < values.length; i += 2) {
    nameSwitch(values, i, i + 1);
}

最终输出:

values = {2, 1, 4, 3, 6, 5, 8, 7, 10, 9};

修改:将比较功能添加到nameSwitch()方法

您可以修改nameSwitch()以考虑哪个数字更大;如果pos1大于pos2,则会进行切换。否则,pos1小于pos2,并且会立即返回该方法。

static void nameSwitch(int[] array, int pos1, int pos2) {

    if (pos1 < pos2) {
        return;
    }

    int temp = array[pos1];
    array[pos1] = array[pos2];
    array[pos2] = temp;

}

答案 1 :(得分:1)

如果我理解您的问题,此代码将有效

static void nameSwitch (int[] array, int pos1, int pos2 ) {
    int temp = array[pos1];       /*As you all may know, this is the switching of position 1 and 2.*/
    array[pos1] = array[pos2];    
    array[pos2] = temp;

}
public static void main(String[] args) {
    int [] values = {1,2,3,4,5,6,7,8,9,10};
    int i;
    for(i = 0; i < values.length; i+=2) {
        nameSwitch(values, i, i+1);
    }
    System.out.println(Arrays.toString(values));
 }

答案 2 :(得分:1)

试试这个,

 for(int i=0;i+1<values.length;i=i+2)
 {
    nameSwitch(values, i, i+1);
  }

哟需要在每次迭代中将i递增2,以便下一对数字可以相互交换。 i+1<values.length将确保如果您在上一次迭代中只剩下一个元素,那么它将保持不变。

答案 3 :(得分:0)

public class Switchnumbers {
public static void main(String[] args) {
    lastToFirstName();
}

static void lastToFirstName() {
    int[] values = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    for (int i = 0; i < values.length; i = i + 2) {
        int tmp = values[i];
        values[i] = values[i + 1];
        values[i + 1] = tmp;
    }
    for (int i = 0; i < values.length; i++) {
        System.out.println(values[i]);
    }

}

}