星期五, 十一月 23, 2007
交換兩個變數 (不使用 tmp 變數) 程式寫法
在這邊看到 交換兩個變數 這篇文章, 讓我想到以前書上看到的寫法, 覺得蠻神奇的, 印像特別深刻, 在此記錄一下寫法~ :)
假設變數是這樣子:
$a = 'abc';
$b = 'def';
echo "a: $a\n";
echo "b: $b\n";
要把 $a 和 $b 的值做互換(swap) 一般寫法(中間用個暫存變數):
$tmp = $a;
$a = $b;
$b = $tmp;
echo "a: $a\n";
echo "b: $b\n";
那不用暫存變數(tmp) 的寫法如下:
$a ^= $b;
$b ^= $a;
$a ^= $b;
echo "a: $a\n";
echo "b: $b\n";
這樣子就會 $a 和 $b 的值就會互換囉~
感謝 Jace 大大提供的另一種解法, 簡單的短短一行, 就解決囉, 不過有限程式語言種類, ex: PHP(記得 Perl 也有類似的), 程式如下:
list($a, $b) = array($b, $a);
python 可以:
a, b = b, a
:)
Comment by
Yuren Ju
(11/23/2007 15:55)
如果是數字
把數字變數對調
a = a + b;
b = a - b;
a = a - b;
這樣a b 就會對調了!
好像沒什麼關係,
突然想到而已!
Comment by
Jason
(12/06/2007 23:04)
發表迴響
PS: 若無法留言, 請先確認是否有打開 JavaScript, 造成您的困擾, 實在萬分對不起 Orz...(如果無法留言, 勞煩可以發信給我好嗎? 謝謝.)
PS2: 若您的留言被誤判, 我都會再自行看過, 不需要一直重覆張貼~
PS2: 若您的留言被誤判, 我都會再自行看過, 不需要一直重覆張貼~





