如何使用临时变量交换两个以上的变量

时间:2013-05-25 12:42:00

标签: java temporary-objects

我正试图弄清楚如何使用临时变量交换两个以上的变量。有4个变量要交换,1,2,3和4.变量一个是交换2,2个用3个,3个用4个和4个用1.这看起来很简单但我只学会了如何交换两个变量如此,我正在努力扩大规模。我试过了

temp = 1
1 = 2
temp = 2 
2 = 3 
temp = 3
3 = 4
temp = 4
4 = 1

我需要多个临时变量吗?仍然只是初学者的任何帮助将不胜感激!

编辑:对不起,忘了添加我为java编码。

3 个答案:

答案 0 :(得分:1)

只需使用一个数组和一个循环,一个临时变量就足够了。 P代码,因为你没有提到语言:

array = { 1, 2, 3, 4 }
tmp = array[0]
for i in [0, array.count - 1)
    array[i] = array[i + 1]
array[array.count - 1] = tmp

答案 1 :(得分:1)

考虑第三步中发生的事情。 1的原始值(在第一行中保存到temp)将丢失,因为您使用temp的值覆盖2

事实证明,无需保存2原始值的副本,因为1中已有副本。这同样适用于所有其他变量(1除外)。

因此,您需要使用temp的唯一时间才是保存1的价值(就像您目前正在做的那样),也是在您分配原始文件时的最后14的值。您无法使用1,因为它已被覆盖,但仅为此目的,副本已保存在temp中。

所以最终的代码如下:

temp = 1
1 = 2
2 = 3 
3 = 4
4 = temp

答案 2 :(得分:1)

数组是满足您需求的更好方法。在您现在的伪代码中,您可以执行以下操作:

temp = 1
1 = 2
2 = 3 
3 = 4
4 = temp

在java中,您可以使用数组执行以下操作:

int[] x = {5,15,25,35};
int temporary = x[0];
for(int j=0;j<x.length-1;j++){
    x[j]=x[j+1];
}
x[x.length-1]=temporary;