Javaプログラミング学習サイト ゆるゆるプログラミング

2016/01/29 公開

・変数値の交換

ここでは、2つ変数値を入れ替える方法について説明します。この入れ替えは、いろいろな場面で使われますので、ぜひ参考にしてください。

スワップのイメージ

まず、変数値を入れ替える(SWAP、スワップという)とは、どういうことかを書いておきます。例えば、abという名前の2つのint型変数があって、それらがa=10b=25であったとします。2つの変数abの値を交換するとは、a=25b=10にするということです。

b=25であったとします。2つの変数abの値を交換するとは、a=25b=10にするということです。

ソースコードを書くと以下のようになります。

Swap1.java ← クリックしてダウンロードページに移動
001:    public class Swap1 {
002:    	public static void main( String[] args ) {
003:    		// 値を代入
004:    		int a = 10;
005:    		int b = 25;
006:    
007:    		// 変数の値を表示
008:    		System.out.println( "交換前 : a=" + a + "  b=" + b );
009:    
010:    		// 交換処理
011:    		int w = a;	// 一時変数wにaを代入
012:    		a = b;
013:    		b = w;
014:    		
015:    		// 交換結果を表示
016:    		System.out.println( "交換後 : a=" + a + "  b=" + b );
017:    	}
018:    }

Swap1の出力結果

交換前 : a=10  b=25
交換後 : a=25  b=10

変数abの値が入れ替わっています。

次に、ソースコードの中で変数の交換処理を行っている箇所について説明します。

010:    		// 交換処理
011:    		int w = a;	// 一時変数wにaを代入
012:    		a = b;
013:    		b = w;

変数aの値を変数wに代入してします。そのあと、変数aに変数bの値を代入し、変数bに変数wの値を代入しています。変数wを使う理由は、12行目のa = b;abが同じ値になり、元のaの値が無くなってしまうからです。変数wに元のaの値を代入しておくことで、bに代入する値がなくなることを防いでいます。

このように、処理のために一時的に変数aの値を変数wに代入するので、この場合の変数w一時変数と呼ばれます。

興味のある方は、交換処理を以下のように変えて試してみてください。交換がうまくいかないことが確認できます。

        a = b;
        b = a;

a=bで、bの値がaに代入され、元のaの値が変わります。そのaの値をb=aで、bに代入しているので交換に失敗します。

■関連コンテンツ

配列の並び替え 配列をランダムに並び替える方法を解説
Javaの変数 Javaで扱う変数について解説
クラスによる変数値を交換する方法を解説-画像

値の交換クラス

クラスを使って2つの変数の値を入れ替える方法を紹介しています。

■新着情報

2021.06.23 配列の初期値 配列の生成直後の値は?
2021.06.18 変数の初期値 変数に値を代入しないで計算

■広告

Topへ