2016.01.29

変数値の交換

変数値の交換

はじめに

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

スワップのイメージ
スワップのイメージ

まず、変数値を入れ替える(SWAP、スワップという)とは、どういうことかを書いておきます。

例えば、abという名前の2つのint型変数があって、それらがa=10b=25であったとします。2つの変数abの値を交換するとは、a=25b=10にするということです。

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

Javaソースコード

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

Swap1.java

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
public class Swap1 {
	public static void main( String[] args ) {
		// 値を代入
		int a = 10;
		int b = 25;

		// 変数の値を表示
		System.out.println( "交換前 : a=" + a + "  b=" + b );

		// 交換処理
		int w = a;	// 一時変数wにaを代入
		a = b;
		b = w;
		
		// 交換結果を表示
		System.out.println( "交換後 : a=" + a + "  b=" + b );
	}
}

コンパイル ソースコードが「ANSI」の場合

C:\talavax\javasample>javac -encoding sjis Swap1.java

コンパイル ソースコードが「UTF-8」の場合

C:\talavax\javasample>javac Swap1.java

実行

C:\talavax\javasample>java Swap1

実行結果

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

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

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

010
011
012
013
		// 交換処理
		int w = a;	// 一時変数wにaを代入
		a = b;
		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に代入しているので交換に失敗します。

以上です。

関連コンテンツ

配列に格納されている数値をランダムに並び替える方法を詳しく解説しています。ソースコード付きです。

2016.01.31

プログラミングで使う変数って何?

2020.03.23

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

2020.07.10

変数やクラスに格納されている値をコンソール出力する方法は?

2020.03.23

プログラムの最初に実行されるメソッドは?

2022.12.13

Javaのプログラムを書いてみませんか?プログラムの書き方をくわしく説明しています。

2020.03.23

「Javaソースコード」から実行可能な「オブジェクトコード」に変換する方法をくわしく説明しています。

2020.03.23

Javaのプログラムを作ってみませんか?プログラミングに必要なものの用意から実行までを説明しています。

2020.03.23

Javaの学習に役立つソースコードを多数紹介しています。是非、ご覧ください。

2022.09.10

Swingパッケージを使ってグラフィック表示を行う方法を解説しています。

2020.03.23

画像フォーマット形式・色・大きさ・傾きなどの変更、特定の図形(文字・記号など)を見つけたり、取り出したりする画像処理について詳しく解説。

2015.11.29

繰り返し処理を使ったJavaのソースコードサンプルを紹介しています。

2020.03.23

配列を使うJavaソースコードを多数紹介しています。

2021.05.18

数学に関係するJavaのメソッドやソースコードなどを紹介しています。

2022.10.25

三角形、台形、円などいろいろな図形の面積を計算するプログラムを紹介しています。詳しくは、記事をご覧ください。

2021.05.18

StringクラスとStringBuilderクラスを利用したプログラミングの仕方を紹介しています。

2016.12.16

Javaを使った簡単な応用プログラム(生年月日から年齢を計算プログラムなど)を紹介しています。

2022.07.07

プログラミング、ITに関する用語をまとめています。

2022.10.17

日本で使われてきた伝統文様「和柄」について解説しています。

2022.07.27

「ゆるゆるプログラム」のコンテンツを紹介しています。興味のある方はこの記事をご覧ください。

2020.03.23

配列に格納されている値の順番を逆にする反転処理を行うプログラムを紹介しています。Javaのソースコードを使って詳しく解説しています。

2019.09.03

ソート(並び替え)アルゴリズムの1つであるバブルソート(bubble sort)について詳しく解説しています。Javaのソースコード付きです。

2023.01.13

ソート(並び替え)アルゴリズムの1つであるクイックソートについて詳しく解説しています。Javaのソースコード付きです。

2019.09.06

広告