天天看點

編譯運作實作兩個變量值交換的方法

1.利用異或運作的方法

在上面已經對資料進行定義的前提下,可以通過代碼

1

2

3

4

<code>A = A ^ B;</code><code>// 執行變量互換</code>

<code>        </code><code>B = B ^ A;</code>

<code>        </code><code>A = A ^ B;</code>

<code>        </code><code>System.out.println(</code><code>"A="</code> <code>+ A + </code><code>"\tB="</code> <code>+ B);</code>

用異或來實作A,B兩數值的交換;

從輸入數值到交換數值,詳細代碼如下:

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

<code>package</code> <code>com.lixiyu;</code>

<code>import</code> <code>java.util.Scanner;</code>

<code>public</code> <code>class</code> <code>VariableExchange {</code>

<code>public</code> <code>static</code> <code>void</code> <code>main(String[] args){</code>

<code>    </code><code>Scanner A=</code><code>new</code> <code>Scanner(System.in);</code>

<code>    </code><code>System.out.println(</code><code>"請輸入變量A的值:"</code><code>);</code>

<code>    </code><code>Long line=A.nextLong();</code>

<code>    </code><code>Scanner B=</code><code>new</code> <code>Scanner(System.in);</code>

<code>    </code><code>System.out.println(</code><code>"請輸入變量B的值:"</code><code>);</code>

<code>    </code><code>Long line1=B.nextLong();</code>

<code>    </code><code>System.out.println(</code><code>"A="</code><code>+line);</code>

<code>    </code><code>System.out.println(</code><code>"B="</code><code>+line1);</code>

<code>    </code><code>System.out.println(</code><code>"執行數值轉換"</code><code>);</code>

<code>    </code><code>line=line^line1;</code>

<code>    </code><code>line1=line1^line;</code>

<code>    </code><code>System.out.println(</code><code>"A="</code><code>+line+</code><code>"\tB="</code><code>+line1);</code>

<code>}</code>

注意這種方法适合數值型,用Long line=A.nextLong()而不是String

2.通過定義一個第三方變量進行交換的方法

利用指派的方法原理實作

比如要實作A、B互換:定義一個變量C,C=A;A=B;B=C;

20

<code>    </code><code>String line2;</code>

<code>    </code><code>String line=A.nextLine();</code>

<code>    </code><code>String line1=B.nextLine();</code>

<code>    </code><code>System.out.println(</code><code>"執行轉換"</code><code>);</code>

<code>    </code><code>line2=line;</code>

<code>    </code><code>line=line1;</code>

<code>    </code><code>line1=line2;</code>

編譯運作成功(這種方法不僅适合Long型也适合其他型,如String等)

還有其它方法以後碰到再補充

本文轉自lixiyu 51CTO部落格,原文連結:http://blog.51cto.com/lixiyu/1302809,如需轉載請自行聯系原作者

繼續閱讀