今回は変数の入れ替えのサンプルをこれまた課題形式でご紹介したいと思います。
では早速
■問題
「下の実行結果になるよう、プログラムにコードを追加しなさい。」
1 2 3 4 5 6 7 8 9 10 11 | public class Practice_02 { public static void main(String[] args) { int a = 10 ; int b = 20 ; [ここにコードを追加] System.out.println( "a : " + a); System.out.println( "b : " + b); } } |
■実行結果
結果をみてみると、aとbの値が入れ替わってることがわかります。
これが今回の課題です。
もちろん
1 2 | a = 20 ; b = 10 ; |
と書くのは禁止です。
aとbがどのような数であったとしても入れ替わります。
知っていれば簡単ですが、初めてみる方にとってはなかなか難しいかと思います。
a = b;
なんて書いたら元々の10が消えてaもbも20になってしまうので気をつけて下さい。
■解答1
今回は2パターン用意してみました。
まず1つ目。
1 2 3 | int t = a; a = b; b = t; |
「t」という新しい変数に一旦aの値を保存しておきます。
するとaをbで上書きしても、元のaの値が残せるわけです。
あとはa にbを代入し、bにtを代入すれば値の入れ替え完了です。
この「t」を一時変数と呼びます。
■解答2
2つ目は一時変数を使用しない方法です。
1 2 3 | a = a + b; b = a - b; a = a - b; |
・1行目
aは10 + 20で30になります
・2行目
bは30-20で10になります。
・3行目
aは30-10で20になります。
この方法だと一変数を使わなくても値が入れ替えられますね。
■まとめ
2つの変数の値を入れ替えるサンプルを作ってみました。
他にも手段はありますが、今回は特にわかりやすい方法を2つ紹介しました。
使う機会があればぜひ参考にしてみて下さい。